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

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Thu Apr 9 18:35:35 UTC 2020


 vcl/unx/gtk3/gtk3gtkinst.cxx |  131 ++++++++++++++++++++++---------------------
 1 file changed, 69 insertions(+), 62 deletions(-)

New commits:
commit 8550e6699d783be295fc2078fbb96ee8e0ea953b
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Apr 9 15:15:19 2020 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Thu Apr 9 20:34:53 2020 +0200

    split out insertParent code
    
    Change-Id: Ideee16b57548df5f6fd1561d68729968edc42e76
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91989
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 88d751bdf7a0..d4a65c9ce53f 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -1710,6 +1710,74 @@ namespace
     }
 #endif
 
+    void insertParent(GtkWidget* pWidget, GtkWidget* pReplacement)
+    {
+        // remove the widget and replace it with pReplacement
+        GtkWidget* pParent = gtk_widget_get_parent(pWidget);
+
+        g_object_ref(pWidget);
+
+        gint nTopAttach(0), nLeftAttach(0), nHeight(1), nWidth(1);
+        if (GTK_IS_GRID(pParent))
+        {
+            gtk_container_child_get(GTK_CONTAINER(pParent), pWidget,
+                    "left-attach", &nTopAttach,
+                    "top-attach", &nLeftAttach,
+                    "width", &nWidth,
+                    "height", &nHeight,
+                    nullptr);
+        }
+
+        gboolean bExpand(false), bFill(false);
+        GtkPackType ePackType(GTK_PACK_START);
+        guint nPadding(0);
+        gint nPosition(0);
+        if (GTK_IS_BOX(pParent))
+        {
+            gtk_container_child_get(GTK_CONTAINER(pParent), pWidget,
+                    "expand", &bExpand,
+                    "fill", &bFill,
+                    "pack-type", &ePackType,
+                    "padding", &nPadding,
+                    "position", &nPosition,
+                    nullptr);
+        }
+
+        gtk_container_remove(GTK_CONTAINER(pParent), pWidget);
+
+        gtk_widget_set_visible(pReplacement, gtk_widget_get_visible(pWidget));
+
+        gtk_container_add(GTK_CONTAINER(pParent), pReplacement);
+
+        if (GTK_IS_GRID(pParent))
+        {
+            gtk_container_child_set(GTK_CONTAINER(pParent), pReplacement,
+                    "left-attach", nTopAttach,
+                    "top-attach", nLeftAttach,
+                    "width", nWidth,
+                    "height", nHeight,
+                    nullptr);
+        }
+
+        if (GTK_IS_BOX(pParent))
+        {
+            gtk_container_child_set(GTK_CONTAINER(pParent), pReplacement,
+                    "expand", bExpand,
+                    "fill", bFill,
+                    "pack-type", ePackType,
+                    "padding", nPadding,
+                    "position", nPosition,
+                    nullptr);
+        }
+
+        gtk_widget_set_hexpand(pReplacement, gtk_widget_get_hexpand(pWidget));
+        gtk_widget_set_vexpand(pReplacement, gtk_widget_get_vexpand(pWidget));
+
+        gtk_container_add(GTK_CONTAINER(pReplacement), pWidget);
+
+        g_object_unref(pWidget);
+    }
+
     GtkWidget* ensureEventWidget(GtkWidget* pWidget)
     {
         if (!pWidget)
@@ -1725,71 +1793,10 @@ namespace
         {
             // remove the widget and replace it with an eventbox and put the old
             // widget into it
-            GtkWidget* pParent = gtk_widget_get_parent(pWidget);
-
-            g_object_ref(pWidget);
-
-            gint nTopAttach(0), nLeftAttach(0), nHeight(1), nWidth(1);
-            if (GTK_IS_GRID(pParent))
-            {
-                gtk_container_child_get(GTK_CONTAINER(pParent), pWidget,
-                        "left-attach", &nTopAttach,
-                        "top-attach", &nLeftAttach,
-                        "width", &nWidth,
-                        "height", &nHeight,
-                        nullptr);
-            }
-
-            gboolean bExpand(false), bFill(false);
-            GtkPackType ePackType(GTK_PACK_START);
-            guint nPadding(0);
-            gint nPosition(0);
-            if (GTK_IS_BOX(pParent))
-            {
-                gtk_container_child_get(GTK_CONTAINER(pParent), pWidget,
-                        "expand", &bExpand,
-                        "fill", &bFill,
-                        "pack-type", &ePackType,
-                        "padding", &nPadding,
-                        "position", &nPosition,
-                        nullptr);
-            }
-
-            gtk_container_remove(GTK_CONTAINER(pParent), pWidget);
-
             pMouseEventBox = gtk_event_box_new();
             gtk_event_box_set_above_child(GTK_EVENT_BOX(pMouseEventBox), false);
             gtk_event_box_set_visible_window(GTK_EVENT_BOX(pMouseEventBox), false);
-            gtk_widget_set_visible(pMouseEventBox, gtk_widget_get_visible(pWidget));
-
-            gtk_container_add(GTK_CONTAINER(pParent), pMouseEventBox);
-
-            if (GTK_IS_GRID(pParent))
-            {
-                gtk_container_child_set(GTK_CONTAINER(pParent), pMouseEventBox,
-                        "left-attach", nTopAttach,
-                        "top-attach", nLeftAttach,
-                        "width", nWidth,
-                        "height", nHeight,
-                        nullptr);
-            }
-
-            if (GTK_IS_BOX(pParent))
-            {
-                gtk_container_child_set(GTK_CONTAINER(pParent), pMouseEventBox,
-                        "expand", bExpand,
-                        "fill", bFill,
-                        "pack-type", ePackType,
-                        "padding", nPadding,
-                        "position", nPosition,
-                        nullptr);
-            }
-
-            gtk_container_add(GTK_CONTAINER(pMouseEventBox), pWidget);
-            g_object_unref(pWidget);
-
-            gtk_widget_set_hexpand(pMouseEventBox, gtk_widget_get_hexpand(pWidget));
-            gtk_widget_set_vexpand(pMouseEventBox, gtk_widget_get_vexpand(pWidget));
+            insertParent(pWidget, pMouseEventBox);
         }
 
         return pMouseEventBox;


More information about the Libreoffice-commits mailing list