diff options
author | monsta <[email protected]> | 2017-01-31 15:45:53 +0300 |
---|---|---|
committer | monsta <[email protected]> | 2017-01-31 15:57:06 +0300 |
commit | c4e12dd23b89264956f07faebd46fcfe1d4adf9a (patch) | |
tree | 6aadb35c65b5b58ee7b711c12b44f14efd1044c0 | |
parent | 34669fd900f262ca71432f7940a9cae895178032 (diff) | |
download | mate-applets-c4e12dd23b89264956f07faebd46fcfe1d4adf9a.tar.bz2 mate-applets-c4e12dd23b89264956f07faebd46fcfe1d4adf9a.tar.xz |
charpick: fix runtime warnings with GTK+ 3.20/22
use modern padding and margin properties to fix deprecation warnings
use zero border width to fix negative allocation warning
similar to these fixes:
https://github.com/mate-desktop/mate-panel/commit/07b3132af934bd61629be064206d7d12e59baa88
https://github.com/mate-desktop/mate-panel/commit/d06d561dfca50f269c6113bf72fd10e063713942
-rw-r--r-- | charpick/charpick.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/charpick/charpick.c b/charpick/charpick.c index e3744c52..28917451 100644 --- a/charpick/charpick.c +++ b/charpick/charpick.c @@ -379,6 +379,30 @@ chooser_button_clicked (GtkButton *button, charpick_data *curr_data) indication be drawn on the label itself when space is tight. Taken from the clock applet. FIXME : This is an Evil Hack and should be fixed when the focus padding can be overridden at the gtk+ level */ +#if GTK_CHECK_VERSION (3, 20, 0) +static inline void force_no_button_padding (GtkWidget *widget) +{ + GtkCssProvider *provider; + + provider = gtk_css_provider_new (); + + gtk_css_provider_load_from_data (provider, + "#charpick-applet-button {\n" + "border-width: 0px;\n" + "padding: 0px;\n" + "margin: 0px;\n" + "}", + -1, + NULL); + gtk_style_context_add_provider (gtk_widget_get_style_context (widget), + GTK_STYLE_PROVIDER (provider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + + g_object_unref (provider); + + gtk_widget_set_name (widget, "charpick-applet-button"); +} +#else static inline void force_no_focus_padding (GtkWidget *widget) { static gboolean first_time = TRUE; @@ -405,6 +429,7 @@ static inline void force_no_focus_padding (GtkWidget *widget) gtk_widget_set_name (widget, "charpick-applet-button"); } +#endif /* creates table of buttons, sets up their callbacks, and packs the table in the event box */ @@ -456,7 +481,11 @@ build_table(charpick_data *p_curr_data) gtk_container_add (GTK_CONTAINER (button), arrow); gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); /* FIXME : evil hack (see force_no_focus_padding) */ +#if GTK_CHECK_VERSION (3, 20, 0) + force_no_button_padding (button); +#else force_no_focus_padding (button); +#endif gtk_box_pack_start (GTK_BOX (box), button, TRUE, TRUE, 0); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (chooser_button_clicked), @@ -495,7 +524,11 @@ build_table(charpick_data *p_curr_data) gtk_widget_show (toggle_button[i]); gtk_button_set_relief(GTK_BUTTON(toggle_button[i]), GTK_RELIEF_NONE); /* FIXME : evil hack (see force_no_focus_padding) */ +#if GTK_CHECK_VERSION (3, 20, 0) + force_no_button_padding (toggle_button[i]); +#else force_no_focus_padding (toggle_button[i]); +#endif gtk_widget_set_tooltip_text (toggle_button[i], name); g_free (name); |