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

Reply via email to