Branch: refs/heads/master Author: Colomban Wendling ban@herbesfolles.org Committer: Colomban Wendling ban@herbesfolles.org Date: Sat, 21 Jun 2014 16:35:17 UTC Commit: ec7071062c5dc39d5f893a830b3c26968a579251 https://github.com/geany/geany/commit/ec7071062c5dc39d5f893a830b3c26968a5792...
Log Message: ----------- Fix GTK frame clock warnings with our about dialog
We used to set the widget's style in a style-set handler, and despite guarding ourselves from recursive invocations, the GTK frame clock introduced by GTK 3.8 didn't like it very much.
So, replace the manual color modification by a simpler global widget state modification, making the code simpler and smaller, yet achieving the same result (or so I hope and see).
Modified Paths: -------------- src/about.c
Modified: src/about.c 38 lines changed, 2 insertions(+), 36 deletions(-) =================================================================== @@ -120,8 +120,6 @@ static const gchar *contributors = "Tyler Mulligan, Walery Studennikov, Yura Siamashka";
-static void header_eventbox_style_set(GtkWidget *widget); -static void header_label_style_set(GtkWidget *widget); static void homepage_clicked(GtkButton *button, gpointer data);
@@ -189,10 +187,8 @@ static GtkWidget *create_dialog(void) gtk_label_set_markup(GTK_LABEL(header_label), buffer); gtk_widget_show(header_label); gtk_box_pack_start(GTK_BOX(header_hbox), header_label, FALSE, FALSE, 0); - header_eventbox_style_set(header_eventbox); - header_label_style_set(header_label); - g_signal_connect_after(header_eventbox, "style-set", G_CALLBACK(header_eventbox_style_set), NULL); - g_signal_connect_after(header_label, "style-set", G_CALLBACK(header_label_style_set), NULL); + gtk_widget_set_state(header_eventbox, GTK_STATE_SELECTED); + gtk_widget_set_state(header_label, GTK_STATE_SELECTED); gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), header_eventbox, FALSE, FALSE, 0);
/* create notebook */ @@ -456,36 +452,6 @@ void about_dialog_show(void) }
-static void header_eventbox_style_set(GtkWidget *widget) -{ - static gint recursive = 0; - GtkStyle *style; - - if (recursive > 0) - return; - - ++recursive; - style = gtk_widget_get_style(widget); - gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &style->bg[GTK_STATE_SELECTED]); - --recursive; -} - - -static void header_label_style_set(GtkWidget *widget) -{ - static gint recursive = 0; - GtkStyle *style; - - if (recursive > 0) - return; - - ++recursive; - style = gtk_widget_get_style(widget); - gtk_widget_modify_fg(widget, GTK_STATE_NORMAL, &style->fg[GTK_STATE_SELECTED]); - --recursive; -} - - static void homepage_clicked(GtkButton *button, gpointer data) { utils_open_browser(data);
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).