tdf#137695 shrink widget height below natural min within data browser

Change-Id: Iba3c12376200b7ce800b48155a4b84ca2e47d63f

Change-Id: Iba3c12376200b7ce800b48155a4b84ca2e47d63f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109380
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/svtools/uiconfig/ui/combocontrol.ui b/svtools/uiconfig/ui/combocontrol.ui
index e9a60df..38a0d6a 100644
--- a/svtools/uiconfig/ui/combocontrol.ui
+++ b/svtools/uiconfig/ui/combocontrol.ui
@@ -16,8 +16,12 @@
          <object class="GtkEntry">
            <property name="truncate-multiline">True</property>
            <property name="can_focus">True</property>
            <property name="has-frame">False</property>
          </object>
        </child>
        <style>
          <class name="small-button"/>
        </style>
      </object>
      <packing>
        <property name="expand">True</property>
diff --git a/svtools/uiconfig/ui/listcontrol.ui b/svtools/uiconfig/ui/listcontrol.ui
index a9f2444..d633ec4 100644
--- a/svtools/uiconfig/ui/listcontrol.ui
+++ b/svtools/uiconfig/ui/listcontrol.ui
@@ -11,6 +11,9 @@
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <property name="hexpand">True</property>
        <style>
          <class name="small-button"/>
        </style>
      </object>
      <packing>
        <property name="expand">True</property>
diff --git a/svtools/uiconfig/ui/thineditcontrol.ui b/svtools/uiconfig/ui/thineditcontrol.ui
index 3f6285d..5046066 100644
--- a/svtools/uiconfig/ui/thineditcontrol.ui
+++ b/svtools/uiconfig/ui/thineditcontrol.ui
@@ -46,6 +46,9 @@
            <property name="activates_default">True</property>
            <property name="truncate-multiline">True</property>
            <property name="width_chars">1</property>
            <style>
              <class name="small-button"/>
            </style>
          </object>
          <packing>
            <property name="left_attach">0</property>
diff --git a/vcl/uiconfig/ui/combobox.ui b/vcl/uiconfig/ui/combobox.ui
index 2c25d7a..23cfe7e 100644
--- a/vcl/uiconfig/ui/combobox.ui
+++ b/vcl/uiconfig/ui/combobox.ui
@@ -3,6 +3,7 @@
<interface domain="vcl">
  <requires lib="gtk+" version="3.20"/>
  <object class="GtkBox" id="box">
    <property name="name">combobox</property>
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <property name="no_show_all">True</property>
diff --git a/vcl/unx/gtk3/gtk3gtkdata.cxx b/vcl/unx/gtk3/gtk3gtkdata.cxx
index 58109aa..cef4b3e 100644
--- a/vcl/unx/gtk3/gtk3gtkdata.cxx
+++ b/vcl/unx/gtk3/gtk3gtkdata.cxx
@@ -522,14 +522,19 @@ void GtkSalData::Init()
                          G_CALLBACK(signalMonitorsChanged), GetGtkDisplay() );

        /*
           set a provider to allow certain buttons to have no padding
           set a provider to allow certain widgets to have no padding

           a) little close button in menubar to close back to start-center
           b) small buttons in view->data sources
           c) small toolbar button in infobars
           b) and small buttons in view->data sources (button.small-button)
           c) small toolbar button in infobars (toolbar.small-button button)
           d) comboboxes in the data browser for tdf#137695 (box#combobox button.small-button,
              which would instead be combobox button.small-button if we didn't replace GtkComboBox,
              see GtkInstanceComboBox for an explanation for why we do that)
           e) entry in the data browser for tdf#137695 (entry.small-button)
        */
        GtkCssProvider* pSmallButtonProvider = gtk_css_provider_new();
        static const gchar data[] = "button.small-button, toolbar.small-button button { "
        static const gchar data[] =
          "button.small-button, toolbar.small-button button, combobox.small-button *.combo, box#combobox.small-button *.combo, entry.small-button { "
          "padding: 0;"
          "margin-left: 0px;"
          "margin-right: 0px;"
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 963f46f..da64914 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -15284,6 +15284,10 @@ public:
        , m_nMaxMRUCount(0)
    {
        int nActive = gtk_combo_box_get_active(m_pComboBox);

        if (gtk_style_context_has_class(gtk_widget_get_style_context(GTK_WIDGET(m_pComboBox)), "small-button"))
            gtk_style_context_add_class(gtk_widget_get_style_context(GTK_WIDGET(getContainer())), "small-button");

        insertAsParent(GTK_WIDGET(m_pComboBox), GTK_WIDGET(getContainer()));
        gtk_widget_set_visible(GTK_WIDGET(m_pComboBox), false);
        gtk_widget_set_no_show_all(GTK_WIDGET(m_pComboBox), true);