[Libreoffice-commits] core.git: cui/source vcl/unx

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Sat Mar 16 23:36:07 UTC 2019


 cui/source/tabpages/page.cxx |    3 +++
 vcl/unx/gtk3/gtk3gtkinst.cxx |    6 ++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

New commits:
commit 6af7bd87a64ddd93e3beef134914311eeac07373
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sat Mar 16 21:46:54 2019 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Sun Mar 17 00:35:46 2019 +0100

    Resolves: tdf#123650 explicitly grab focus after modification
    
    of the widget after gaining focus, otherwise gtk loses track
    of where the focus should be
    
    Change-Id: I90d9f36acf807aec8687c7f563449ef16d5eb574
    Reviewed-on: https://gerrit.libreoffice.org/69355
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/cui/source/tabpages/page.cxx b/cui/source/tabpages/page.cxx
index b7893372aa7f..2a51bc302d30 100644
--- a/cui/source/tabpages/page.cxx
+++ b/cui/source/tabpages/page.cxx
@@ -826,6 +826,9 @@ IMPL_LINK_NOARG(SvxPageDescPage, PaperBinHdl_Impl, weld::Widget&, void)
     }
     m_xPaperTrayBox->set_active_text(aOldName);
     m_xPaperTrayBox->thaw();
+    // tdf#123650 explicitly grab-focus after the modification otherwise gtk loses track
+    // of there the focus should be
+    m_xPaperTrayBox->grab_focus();
 }
 
 IMPL_LINK_NOARG(SvxPageDescPage, PaperSizeSelect_Impl, weld::ComboBox&, void)
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 910c1cbc230a..84f13af7c1a6 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -1255,11 +1255,12 @@ protected:
     GtkWidget* m_pWidget;
     GtkInstanceBuilder* m_pBuilder;
 
-    static void signalFocusIn(GtkWidget*, GdkEvent*, gpointer widget)
+    static gboolean signalFocusIn(GtkWidget*, GdkEvent*, gpointer widget)
     {
         GtkInstanceWidget* pThis = static_cast<GtkInstanceWidget*>(widget);
         SolarMutexGuard aGuard;
         pThis->signal_focus_in();
+        return false;
     }
 
     void signal_focus_in()
@@ -1267,11 +1268,12 @@ protected:
         m_aFocusInHdl.Call(*this);
     }
 
-    static void signalFocusOut(GtkWidget*, GdkEvent*, gpointer widget)
+    static gboolean signalFocusOut(GtkWidget*, GdkEvent*, gpointer widget)
     {
         GtkInstanceWidget* pThis = static_cast<GtkInstanceWidget*>(widget);
         SolarMutexGuard aGuard;
         pThis->signal_focus_out();
+        return false;
     }
 
     void signal_focus_out()


More information about the Libreoffice-commits mailing list