[gnome-panel/gtk3] Reset style provider for applets when no background is used



commit 2522d65b6d0bb66b18e2ba4585ae3b2e07856bb8
Author: Carlos Garcia Campos <carlosgc gnome org>
Date:   Tue Jan 18 19:26:48 2011 +0100

    Reset style provider for applets when no background is used

 libpanel-applet/panel-applet.c |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)
---
diff --git a/libpanel-applet/panel-applet.c b/libpanel-applet/panel-applet.c
index 60e9f14..4c7378b 100644
--- a/libpanel-applet/panel-applet.c
+++ b/libpanel-applet/panel-applet.c
@@ -1512,6 +1512,12 @@ get_widget_style_properties (GtkWidget *widget)
 }
 
 static void
+reset_widget_style_properties (GtkWidget *widget)
+{
+        g_object_set_data (G_OBJECT (widget), "panel-applet-style-props", NULL);
+}
+
+static void
 panel_applet_update_background_for_widget (GtkWidget       *widget,
 					   cairo_pattern_t *pattern)
 {
@@ -1519,11 +1525,15 @@ panel_applet_update_background_for_widget (GtkWidget       *widget,
 
         gtk_widget_reset_style (widget);
 
-        if (!pattern)
-                return;
-
         properties = get_widget_style_properties (widget);
 
+        if (!pattern) {
+                gtk_style_context_remove_provider (gtk_widget_get_style_context (widget),
+                                                   GTK_STYLE_PROVIDER (properties));
+                reset_widget_style_properties (widget);
+                return;
+        }
+
         switch (cairo_pattern_get_type (pattern)) {
         case CAIRO_PATTERN_TYPE_SOLID: {
                 GdkRGBA color;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]