vcl/unx/gtk3/gtk3gtkinst.cxx |   29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

New commits:
commit fe019b702cfe2af24c35f40db340a82892feb69c
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Mon Jul 27 15:56:54 2020 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Mon Jul 27 20:13:24 2020 +0200

    detect small-button class and minimize padding and size in that case
    
    Change-Id: I7db9d765549112e292f60d1cd47002e45f0136b3
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99517
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index e9c7dab0b0e0..7b9b8b134e3d 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -15349,6 +15349,7 @@ private:
     GtkBuilder* m_pBuilder;
     GSList* m_pObjectList;
     GtkWidget* m_pParentWidget;
+    GtkCssProvider *m_pSmallButtonProvider;
     gulong m_nNotifySignalId;
     std::vector<GtkButton*> m_aMnemonicButtons;
     std::vector<GtkLabel*> m_aMnemonicLabels;
@@ -15440,6 +15441,33 @@ private:
             }
             if (gtk_button_get_use_underline(pButton) && 
!gtk_button_get_use_stock(pButton))
                 m_aMnemonicButtons.push_back(pButton);
+
+            GtkStyleContext *pButtonContext = 
gtk_widget_get_style_context(pWidget);
+            if (gtk_style_context_has_class(pButtonContext, "small-button"))
+            {
+                if (!m_pSmallButtonProvider)
+                {
+                    m_pSmallButtonProvider = gtk_css_provider_new();
+                    static const gchar data[] = "* { "
+                      "padding: 0;"
+                      "margin-left: 0px;"
+                      "margin-right: 0px;"
+                      "min-height: 18px;"
+                      "min-width: 18px;"
+                      "}";
+                    const gchar olddata[] = "* { "
+                      "padding: 0;"
+                      "margin-left: 0px;"
+                      "margin-right: 0px;"
+                      "}";
+                    gtk_css_provider_load_from_data(m_pSmallButtonProvider, 
gtk_check_version(3, 20, 0) == nullptr ? data : olddata, -1, nullptr);
+                }
+
+                gtk_style_context_add_provider(pButtonContext,
+                                               
GTK_STYLE_PROVIDER(m_pSmallButtonProvider),
+                                               
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+            }
+
         }
         else if (GTK_IS_LABEL(pWidget))
         {
@@ -15522,6 +15550,7 @@ public:
         : weld::Builder()
         , m_pStringReplace(Translate::GetReadStringHook())
         , m_pParentWidget(pParent)
+        , m_pSmallButtonProvider(nullptr)
         , m_nNotifySignalId(0)
         , m_xInterimGlue(pInterimGlue)
     {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to