don't allow selecting multiple items in single selection control by changing the focused item with Ctrl-arrows and then pressing Space
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47175 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
d23bf09c7f
commit
a9aead31d6
@ -3332,7 +3332,8 @@ void wxListMainWindow::OnArrowChar(size_t newCurrent, const wxKeyEvent& event)
|
||||
else // !shift
|
||||
{
|
||||
// all previously selected items are unselected unless ctrl is held
|
||||
if ( !event.ControlDown() )
|
||||
// in a multiselection control
|
||||
if ( !event.ControlDown() || IsSingleSel() )
|
||||
HighlightAll(false);
|
||||
|
||||
ChangeCurrent(newCurrent);
|
||||
@ -3340,10 +3341,9 @@ void wxListMainWindow::OnArrowChar(size_t newCurrent, const wxKeyEvent& event)
|
||||
// refresh the old focus to remove it
|
||||
RefreshLine( oldCurrent );
|
||||
|
||||
if ( !event.ControlDown() )
|
||||
{
|
||||
// in single selection mode we must always have a selected item
|
||||
if ( !event.ControlDown() || IsSingleSel() )
|
||||
HighlightLine( m_current, true );
|
||||
}
|
||||
}
|
||||
|
||||
RefreshLine( m_current );
|
||||
@ -3523,17 +3523,19 @@ void wxListMainWindow::OnChar( wxKeyEvent &event )
|
||||
case WXK_SPACE:
|
||||
if ( IsSingleSel() )
|
||||
{
|
||||
SendNotify( m_current, wxEVT_COMMAND_LIST_ITEM_ACTIVATED );
|
||||
|
||||
if ( IsHighlighted(m_current) )
|
||||
if ( event.ControlDown() )
|
||||
{
|
||||
// don't unselect the item in single selection mode
|
||||
break;
|
||||
ReverseHighlight(m_current);
|
||||
}
|
||||
else // normal space press
|
||||
{
|
||||
SendNotify( m_current, wxEVT_COMMAND_LIST_ITEM_ACTIVATED );
|
||||
}
|
||||
//else: select it in ReverseHighlight() below if unselected
|
||||
}
|
||||
|
||||
ReverseHighlight(m_current);
|
||||
else // multiple selection
|
||||
{
|
||||
ReverseHighlight(m_current);
|
||||
}
|
||||
break;
|
||||
|
||||
case WXK_RETURN:
|
||||
|
Loading…
Reference in New Issue
Block a user