+
+ if ( stateMask & wxLIST_STATE_SELECTED )
+ {
+ bool on = (state & wxLIST_STATE_SELECTED) != 0;
+ if (!on && (m_mode & wxLC_SINGLE_SEL))
+ return;
+
+ wxListLineData *line = &m_lines[(size_t)item];
+ if (m_mode & wxLC_SINGLE_SEL)
+ {
+ UnfocusLine( m_current );
+ m_current = line;
+ FocusLine( m_current );
+ if (oldCurrent)
+ oldCurrent->Hilight( FALSE );
+ RefreshLine( m_current );
+ if (oldCurrent)
+ RefreshLine( oldCurrent );
+ }
+
+ if (on != line->IsHilighted())
+ {
+ line->Hilight( on );
+ RefreshLine( line );
+ }
+ }