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

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Fri Mar 8 14:03:23 UTC 2019


 vcl/unx/gtk3/gtk3gtkinst.cxx |   22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

New commits:
commit 4cfbdd47a87b00ee4f66752669dc26c078f94721
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Fri Mar 8 11:58:14 2019 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Fri Mar 8 15:02:54 2019 +0100

    use gtk_toggle_button_get_mode as trigger for pan-down inclusion
    
    Change-Id: Ic8cd9babe3c196cdd66524f39a78940c9a029d2e
    Reviewed-on: https://gerrit.libreoffice.org/68917
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 7e8334d30e8f..104a3181ec02 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -4149,7 +4149,7 @@ private:
     GtkMenuButton* m_pMenuButton;
     GtkBox* m_pBox;
     GtkImage* m_pImage;
-    GtkLabel* m_pLabel;
+    GtkWidget* m_pLabel;
     //popover cannot escape dialog under X so stick up own window instead
     GtkWindow* m_pMenuHack;
     GtkWidget* m_pPopover;
@@ -4327,19 +4327,20 @@ public:
         , m_pPopover(nullptr)
         , m_nSignalId(0)
     {
+        m_pLabel = gtk_bin_get_child(GTK_BIN(m_pMenuButton));
         //do it "manually" so we can have the dropdown image in GtkMenuButtons shown
         //on the right at the same time as this image is shown on the left
-        OString sLabel(gtk_button_get_label(GTK_BUTTON(m_pMenuButton)));
-        GtkWidget* pChild = gtk_bin_get_child(GTK_BIN(m_pMenuButton));
-        gtk_container_remove(GTK_CONTAINER(m_pMenuButton), pChild);
+        g_object_ref(m_pLabel);
+        gtk_container_remove(GTK_CONTAINER(m_pMenuButton), m_pLabel);
 
         m_pBox = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0));
 
-        m_pLabel = GTK_LABEL(gtk_label_new_with_mnemonic(sLabel.getStr()));
-        gtk_label_set_mnemonic_widget(m_pLabel, GTK_WIDGET(m_pMenuButton));
-        gtk_box_pack_start(m_pBox, GTK_WIDGET(m_pLabel), false, false, 0);
+        gtk_box_pack_start(m_pBox, m_pLabel, false, false, 0);
+        g_object_unref(m_pLabel);
+
+        if (gtk_toggle_button_get_mode(GTK_TOGGLE_BUTTON(m_pMenuButton)))
+            gtk_box_pack_end(m_pBox, gtk_image_new_from_icon_name("pan-down-symbolic", GTK_ICON_SIZE_BUTTON), false, false, 0);
 
-        gtk_box_pack_end(m_pBox, gtk_image_new_from_icon_name("pan-down-symbolic", GTK_ICON_SIZE_BUTTON), false, false, 0);
         gtk_container_add(GTK_CONTAINER(m_pMenuButton), GTK_WIDGET(m_pBox));
         gtk_widget_show_all(GTK_WIDGET(m_pBox));
     }
@@ -4347,13 +4348,14 @@ public:
     virtual void set_size_request(int nWidth, int nHeight) override
     {
         // tweak the label to get a narrower size to stick
-        gtk_label_set_ellipsize(m_pLabel, PANGO_ELLIPSIZE_MIDDLE);
+        if (GTK_IS_LABEL(m_pLabel))
+            gtk_label_set_ellipsize(GTK_LABEL(m_pLabel), PANGO_ELLIPSIZE_MIDDLE);
         gtk_widget_set_size_request(m_pWidget, nWidth, nHeight);
     }
 
     virtual void set_label(const OUString& rText) override
     {
-        ::set_label(m_pLabel, rText);
+        ::set_label(GTK_LABEL(m_pLabel), rText);
     }
 
     virtual void set_image(VirtualDevice* pDevice) override


More information about the Libreoffice-commits mailing list