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);