vcl/unx/gtk3/gtkdata.cxx | 58 ++++++++++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 23 deletions(-)
New commits: commit 27f2084cbe0f505e59420e90235bfd7a668ae96e Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Tue May 11 13:51:00 2021 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Tue May 11 16:37:17 2021 +0200 gtk4: style provider is at GdkDisplay rather than GdkScreen now Change-Id: I9ae0d2e306c7470237ab16436dd80518c911deb7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115401 Tested-by: Caolán McNamara <caol...@redhat.com> Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/unx/gtk3/gtkdata.cxx b/vcl/unx/gtk3/gtkdata.cxx index a30e4df0b853..4cea5bc5d223 100644 --- a/vcl/unx/gtk3/gtkdata.cxx +++ b/vcl/unx/gtk3/gtkdata.cxx @@ -443,6 +443,37 @@ bool GtkSalData::Yield( bool bWait, bool bHandleAllCurrentEvents ) return bWasEvent; } +static GtkStyleProvider* CreateSmallButtonProvider() +{ + /* + set a provider to allow certain widgets to have no padding + + a) little close button in menubar to close back to start-center + 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, combobox.small-button *.combo, box#combobox.small-button *.combo, entry.small-button { " + "padding: 0;" + "margin-left: 0px;" + "margin-right: 0px;" + "min-height: 18px;" + "min-width: 18px;" + "}"; +#if GTK_CHECK_VERSION(4, 0, 0) + gtk_css_provider_load_from_data(pSmallButtonProvider, data, -1); +#else + gtk_css_provider_load_from_data(pSmallButtonProvider, data, -1, nullptr); +#endif + + return GTK_STYLE_PROVIDER(pSmallButtonProvider); +} + void GtkSalData::Init() { SAL_INFO( "vcl.gtk", "GtkMainloop::Init()" ); @@ -554,31 +585,12 @@ void GtkSalData::Init() g_signal_connect( G_OBJECT(pScreen), "monitors-changed", G_CALLBACK(signalMonitorsChanged), GetGtkDisplay() ); - /* - set a provider to allow certain widgets to have no padding - - a) little close button in menubar to close back to start-center - 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, combobox.small-button *.combo, box#combobox.small-button *.combo, entry.small-button { " - "padding: 0;" - "margin-left: 0px;" - "margin-right: 0px;" - "min-height: 18px;" - "min-width: 18px;" - "}"; - gtk_css_provider_load_from_data(pSmallButtonProvider, data, -1, nullptr); - - gtk_style_context_add_provider_for_screen(pScreen, GTK_STYLE_PROVIDER(pSmallButtonProvider), + gtk_style_context_add_provider_for_screen(pScreen, CreateSmallButtonProvider(), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); } +#else + gtk_style_context_add_provider_for_display(pGdkDisp, CreateSmallButtonProvider(), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); #endif } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits