diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-02-23 10:50:35 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2021-02-23 14:54:06 +0100 |
commit | 731f08e5a84817dbc3c6be6e670025d51f39cd61 (patch) | |
tree | d40ada302938cc34981d36d684bdab5ea67c2721 | |
parent | acb442a5ffce156e6af4781643df76d4bebe5df5 (diff) |
reportdesigner focus out handler clobbering the preexisting handler
set by the databrowser, so chain one after the other
Change-Id: I5aa16635031be425b9354e5a2d6b891a81d54e55
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111384
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | include/svtools/editbrowsebox.hxx | 9 | ||||
-rw-r--r-- | reportdesign/source/ui/dlg/GroupsSorting.cxx | 4 | ||||
-rw-r--r-- | reportdesign/source/ui/inc/GroupsSorting.hxx | 2 | ||||
-rw-r--r-- | svtools/source/brwbox/ebbcontrols.cxx | 5 |
4 files changed, 15 insertions, 5 deletions
diff --git a/include/svtools/editbrowsebox.hxx b/include/svtools/editbrowsebox.hxx index 6ff261e2e254..20a302f75b61 100644 --- a/include/svtools/editbrowsebox.hxx +++ b/include/svtools/editbrowsebox.hxx @@ -171,10 +171,19 @@ namespace svt virtual void SetEditableReadOnly(bool bReadOnly); virtual bool ProcessKey(const KeyEvent& rKEvt); + + // chain after the FocusOutHdl + void SetFocusInHdl(const Link<LinkParamNone*,void>& rHdl) + { + m_aFocusInHdl = rHdl; + } + protected: DECL_LINK(KeyInputHdl, const KeyEvent&, bool); DECL_LINK(FocusInHdl, weld::Widget&, void); DECL_LINK(FocusOutHdl, weld::Widget&, void); + private: + Link<LinkParamNone*,void> m_aFocusInHdl; }; class SVT_DLLPUBLIC EditControlBase : public ControlBase diff --git a/reportdesign/source/ui/dlg/GroupsSorting.cxx b/reportdesign/source/ui/dlg/GroupsSorting.cxx index 4548072ccc74..6ac7f357d90e 100644 --- a/reportdesign/source/ui/dlg/GroupsSorting.cxx +++ b/reportdesign/source/ui/dlg/GroupsSorting.cxx @@ -375,7 +375,7 @@ void OFieldExpressionControl::lateInit() rComboBox.connect_changed(LINK(this,OFieldExpressionControl,CBChangeHdl)); m_pComboCell->SetHelpId(HID_RPT_FIELDEXPRESSION); - rComboBox.connect_focus_in(LINK(m_pParent, OGroupsSortingDialog, OnControlFocusGot)); + m_pComboCell->SetFocusInHdl(LINK(m_pParent, OGroupsSortingDialog, OnControlFocusGot)); // set browse mode @@ -931,7 +931,7 @@ sal_Int32 OGroupsSortingDialog::getColumnDataType(const OUString& _sColumnName) return nDataType; } -IMPL_LINK_NOARG(OGroupsSortingDialog, OnControlFocusGot, weld::Widget&, void ) +IMPL_LINK_NOARG(OGroupsSortingDialog, OnControlFocusGot, LinkParamNone*, void ) { m_xHelpWindow->set_label(RptResId(STR_RPT_HELP_FIELD)); } diff --git a/reportdesign/source/ui/inc/GroupsSorting.hxx b/reportdesign/source/ui/inc/GroupsSorting.hxx index cd038e6164c4..7b465a5a2034 100644 --- a/reportdesign/source/ui/inc/GroupsSorting.hxx +++ b/reportdesign/source/ui/inc/GroupsSorting.hxx @@ -74,7 +74,7 @@ private: DECL_LINK( OnWidgetFocusLost, weld::Widget&, void ); DECL_LINK( OnWidgetFocusGot, weld::Widget&, void ); - DECL_LINK( OnControlFocusGot, weld::Widget&, void ); + DECL_LINK( OnControlFocusGot, LinkParamNone*, void ); DECL_LINK( LBChangeHdl, weld::ComboBox&, void ); DECL_LINK( OnFormatAction, const OString&, void ); diff --git a/svtools/source/brwbox/ebbcontrols.cxx b/svtools/source/brwbox/ebbcontrols.cxx index 35fb994daaea..ef783529e6a5 100644 --- a/svtools/source/brwbox/ebbcontrols.cxx +++ b/svtools/source/brwbox/ebbcontrols.cxx @@ -356,12 +356,13 @@ namespace svt IMPL_LINK_NOARG(ControlBase, FocusInHdl, weld::Widget&, void) { - return static_cast<BrowserDataWin*>(GetParent())->GetParent()->ChildFocusIn(); + m_aFocusInHdl.Call(nullptr); + static_cast<BrowserDataWin*>(GetParent())->GetParent()->ChildFocusIn(); } IMPL_LINK_NOARG(ControlBase, FocusOutHdl, weld::Widget&, void) { - return static_cast<BrowserDataWin*>(GetParent())->GetParent()->ChildFocusOut(); + static_cast<BrowserDataWin*>(GetParent())->GetParent()->ChildFocusOut(); } void EditControlBase::dispose() |