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/+/109382
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
diff --git a/svtools/uiconfig/ui/combocontrol.ui b/svtools/uiconfig/ui/combocontrol.ui
index b3a8ee9..43b0d15 100644
--- a/svtools/uiconfig/ui/combocontrol.ui
+++ b/svtools/uiconfig/ui/combocontrol.ui
@@ -15,8 +15,12 @@
        <child internal-child="entry">
          <object class="GtkEntry">
            <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 f814e31..0602a80 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/vcl/uiconfig/ui/combobox.ui b/vcl/uiconfig/ui/combobox.ui
index 24b0787..6777506 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.18"/>
  <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 dce8a5b..c4e64d2 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 cefec34..e59e2a5 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -14138,6 +14138,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);