include/svtools/editbrowsebox.hxx | 9 +++++++++ reportdesign/source/ui/dlg/GroupsSorting.cxx | 4 ++-- reportdesign/source/ui/inc/GroupsSorting.hxx | 2 +- svtools/source/brwbox/ebbcontrols.cxx | 5 +++-- 4 files changed, 15 insertions(+), 5 deletions(-)
New commits: commit 731f08e5a84817dbc3c6be6e670025d51f39cd61 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Tue Feb 23 10:50:35 2021 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Tue Feb 23 14:54:06 2021 +0100 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 <caol...@redhat.com> 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() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits