diff options
author | Caolán McNamara <caolanm@redhat.com> | 2022-12-19 11:55:05 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2022-12-19 20:33:47 +0000 |
commit | ee767c14530ad1fb8b7660e9352199f185fe61dc (patch) | |
tree | f801b407a47dc63571eeb28be186bb66bbe24056 /svtools | |
parent | d7ada1052f9c237755e7b199274b52842861da40 (diff) |
Resolves: tdf#146933 wire up keypress events for table control widgets
Change-Id: Idc8cc3c24d061537a76a37f4fa84951a41a42657
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144470
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svtools')
-rw-r--r-- | svtools/source/brwbox/ebbcontrols.cxx | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/svtools/source/brwbox/ebbcontrols.cxx b/svtools/source/brwbox/ebbcontrols.cxx index b6a27a2567f4..b0a2ad1bbcc3 100644 --- a/svtools/source/brwbox/ebbcontrols.cxx +++ b/svtools/source/brwbox/ebbcontrols.cxx @@ -30,6 +30,7 @@ namespace svt m_xWidget->set_entry_width_chars(1); // so a smaller than default width can be used m_xWidget->connect_changed(LINK(this, ComboBoxControl, SelectHdl)); m_xWidget->connect_key_press(LINK(this, ControlBase, KeyInputHdl)); + m_xWidget->connect_key_release(LINK(this, ControlBase, KeyReleaseHdl)); m_xWidget->connect_focus_in(LINK(this, ControlBase, FocusInHdl)); m_xWidget->connect_focus_out(LINK(this, ControlBase, FocusOutHdl)); m_xWidget->connect_mouse_press(LINK(this, ControlBase, MousePressHdl)); @@ -125,6 +126,7 @@ namespace svt m_xWidget->set_size_request(42, -1); // so a later narrow size request can stick m_xWidget->connect_changed(LINK(this, ListBoxControl, SelectHdl)); m_xWidget->connect_key_press(LINK(this, ControlBase, KeyInputHdl)); + m_xWidget->connect_key_release(LINK(this, ControlBase, KeyReleaseHdl)); m_xWidget->connect_focus_in(LINK(this, ControlBase, FocusInHdl)); m_xWidget->connect_focus_out(LINK(this, ControlBase, FocusOutHdl)); m_xWidget->connect_mouse_press(LINK(this, ControlBase, MousePressHdl)); @@ -203,6 +205,7 @@ namespace svt m_aModeState.bTriStateEnabled = true; InitControlBase(m_xBox.get()); m_xBox->connect_key_press(LINK(this, ControlBase, KeyInputHdl)); + m_xBox->connect_key_release(LINK(this, ControlBase, KeyReleaseHdl)); m_xBox->connect_focus_in(LINK(this, ControlBase, FocusInHdl)); m_xBox->connect_focus_out(LINK(this, ControlBase, FocusOutHdl)); m_xBox->connect_mouse_press(LINK(this, ControlBase, MousePressHdl)); @@ -362,9 +365,10 @@ namespace svt m_pEntry = pEntry; m_pEntry->show(); m_pEntry->set_width_chars(1); // so a smaller than default width can be used - connect_key_press(LINK(this, ControlBase, KeyInputHdl)); - connect_focus_in(LINK(this, ControlBase, FocusInHdl)); - connect_focus_out(LINK(this, ControlBase, FocusOutHdl)); + connect_focus_in(LINK(this, ControlBase, FocusInHdl)); // need to chain with pattern handler + connect_focus_out(LINK(this, ControlBase, FocusOutHdl)); // need to chain with pattern handler + connect_key_press(LINK(this, ControlBase, KeyInputHdl)); // need to chain with pattern handler + m_pEntry->connect_key_release(LINK(this, ControlBase, KeyReleaseHdl)); m_pEntry->connect_mouse_press(LINK(this, ControlBase, MousePressHdl)); m_pEntry->connect_mouse_release(LINK(this, ControlBase, MouseReleaseHdl)); m_pEntry->connect_mouse_move(LINK(this, ControlBase, MouseMoveHdl)); @@ -377,9 +381,16 @@ namespace svt IMPL_LINK(ControlBase, KeyInputHdl, const KeyEvent&, rKEvt, bool) { + m_aKeyInputHdl.Call(rKEvt); return ProcessKey(rKEvt); } + IMPL_LINK(ControlBase, KeyReleaseHdl, const KeyEvent&, rKEvt, bool) + { + m_aKeyReleaseHdl.Call(rKEvt); + return false; + } + IMPL_LINK_NOARG(ControlBase, FocusInHdl, weld::Widget&, void) { m_aFocusInHdl.Call(nullptr); @@ -703,6 +714,7 @@ namespace svt { InitControlBase(m_xWidget.get()); m_xWidget->connect_key_press(LINK(this, ControlBase, KeyInputHdl)); + m_xWidget->connect_key_release(LINK(this, ControlBase, KeyReleaseHdl)); m_xWidget->connect_focus_in(LINK(this, ControlBase, FocusInHdl)); m_xWidget->connect_focus_out(LINK(this, ControlBase, FocusOutHdl)); m_xWidget->connect_mouse_press(LINK(this, ControlBase, MousePressHdl)); |