diff options
author | Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> | 2019-11-27 16:43:19 +0100 |
---|---|---|
committer | Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> | 2019-12-03 07:46:45 +0100 |
commit | e9ced64ffac0752e2bbd2879ea267116502606fc (patch) | |
tree | 292f312b22dd3f4f2f546afd6c5ba701543dd8c3 | |
parent | 723785f4a01833ef252442e817a57798f1f7c999 (diff) |
tdf#129043 Correctly deliver combo box events when used with keyboard
Change-Id: I82186f999e74be4aebd59d77666390a7d5e8ad81
Reviewed-on: https://gerrit.libreoffice.org/83923
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
(cherry picked from commit 7de9417d5f65d35227c7f80f6d587c2a56bde4e0)
Reviewed-on: https://gerrit.libreoffice.org/83982
-rw-r--r-- | vcl/inc/listbox.hxx | 1 | ||||
-rw-r--r-- | vcl/source/control/combobox.cxx | 2 | ||||
-rw-r--r-- | vcl/source/control/imp_listbox.cxx | 5 |
3 files changed, 6 insertions, 2 deletions
diff --git a/vcl/inc/listbox.hxx b/vcl/inc/listbox.hxx index 1ee124423fc1..8faed20374e8 100644 --- a/vcl/inc/listbox.hxx +++ b/vcl/inc/listbox.hxx @@ -220,6 +220,7 @@ private: bool mbCenter : 1; ///< center Text output bool mbRight : 1; ///< right align Text output bool mbEdgeBlending : 1; + bool mbIsComboboxDropdown : 1; Link<ImplListBoxWindow*,void> maScrollHdl; Link<LinkParamNone*,void> maSelectHdl; diff --git a/vcl/source/control/combobox.cxx b/vcl/source/control/combobox.cxx index 4b19c42ad5c4..710b4a0bac3e 100644 --- a/vcl/source/control/combobox.cxx +++ b/vcl/source/control/combobox.cxx @@ -745,7 +745,7 @@ bool ComboBox::EventNotify( NotifyEvent& rNEvt ) case KEY_RETURN: { - if ((rNEvt.GetWindow() == m_pImpl->m_pSubEdit) && IsInDropDown()) + if (rNEvt.GetWindow() == m_pImpl->m_pSubEdit) { m_pImpl->m_pImplLB->ProcessKeyInput( aKeyEvt ); bDone = true; diff --git a/vcl/source/control/imp_listbox.cxx b/vcl/source/control/imp_listbox.cxx index fb6da7b2c6e6..e87281447bf1 100644 --- a/vcl/source/control/imp_listbox.cxx +++ b/vcl/source/control/imp_listbox.cxx @@ -483,6 +483,7 @@ ImplListBoxWindow::ImplListBoxWindow( vcl::Window* pParent, WinBits nWinStyle ) mbCenter = ( nWinStyle & WB_CENTER ); mbSimpleMode = ( nWinStyle & WB_SIMPLEMODE ); mbSort = ( nWinStyle & WB_SORT ); + mbIsComboboxDropdown = ( nWinStyle & WB_DROPDOWN ); mbEdgeBlending = false; // pb: #106948# explicit mirroring for calc @@ -1633,7 +1634,9 @@ bool ImplListBoxWindow::ProcessKeyInput( const KeyEvent& rKEvt ) mnCurrentPos = nSelect; if(SelectEntries( nSelect, eLET, bShift, bCtrl, bCurPosChange)) { - mbTravelSelect = true; + // tdf#129043 Correctly deliver events when changing values with arrow keys in combobox + if (mbIsComboboxDropdown && IsReallyVisible()) + mbTravelSelect = true; mnSelectModifier = rKEvt.GetKeyCode().GetModifier(); ImplCallSelect(); mbTravelSelect = false; |