diff options
-rw-r--r-- | vcl/source/control/ilstbox.cxx | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/vcl/source/control/ilstbox.cxx b/vcl/source/control/ilstbox.cxx index 2ec92334e880..e5d29ea4a98e 100644 --- a/vcl/source/control/ilstbox.cxx +++ b/vcl/source/control/ilstbox.cxx @@ -1357,6 +1357,7 @@ bool ImplListBoxWindow::ProcessKeyInput( const KeyEvent& rKEvt ) bool bCtrl = aKeyCode.IsMod1() || aKeyCode.IsMod3(); bool bMod2 = aKeyCode.IsMod2(); bool bDone = false; + bool bHandleKey = false; switch( aKeyCode.GetCode() ) { @@ -1572,7 +1573,7 @@ bool ImplListBoxWindow::ProcessKeyInput( const KeyEvent& rKEvt ) } bDone = true; } - maQuickSelectionEngine.Reset(); + bHandleKey = true; } break; @@ -1595,18 +1596,21 @@ bool ImplListBoxWindow::ProcessKeyInput( const KeyEvent& rKEvt ) maQuickSelectionEngine.Reset(); bDone = true; - break; } - } - // fall through intentional - default: - { - if ( !IsReadOnly() ) + else { - bDone = maQuickSelectionEngine.HandleKeyEvent( rKEvt ); + bHandleKey = true; } - } + } break; + + default: + bHandleKey = true; + break; + } + if (bHandleKey && !IsReadOnly()) + { + bDone = maQuickSelectionEngine.HandleKeyEvent( rKEvt ); } if ( ( nSelect != LISTBOX_ENTRY_NOTFOUND ) |