]> Pileus Git - ~andy/gtk/commitdiff
GtkWidget: unset NULL properties when overriding style.
authorCarlos Garnacho <carlosg@gnome.org>
Mon, 29 Nov 2010 10:27:43 +0000 (11:27 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Sat, 4 Dec 2010 14:39:50 +0000 (15:39 +0100)
gtk/gtkwidget.c

index 1c0bfee7774dec059204928478720fa0b5db4333..d84e9be5e5d0d2b26b27340fb1dd93d511e72698 100644 (file)
@@ -8002,9 +8002,12 @@ gtk_widget_override_color (GtkWidget     *widget,
 
   properties = _gtk_widget_get_modifier_properties (widget);
 
-  gtk_style_properties_set (properties, state,
-                            "color", color,
-                            NULL);
+  if (color)
+    gtk_style_properties_set (properties, state,
+                              "color", color,
+                              NULL);
+  else
+    gtk_style_properties_unset_property (properties, "color", state);
 
   context = gtk_widget_get_style_context (widget);
   gtk_style_context_invalidate (context);
@@ -8039,9 +8042,14 @@ gtk_widget_override_background_color (GtkWidget     *widget,
 
   properties = _gtk_widget_get_modifier_properties (widget);
 
-  gtk_style_properties_set (properties, state,
-                            "background-color", color,
-                            NULL);
+  if (color)
+    gtk_style_properties_set (properties, state,
+                              "background-color", color,
+                              NULL);
+  else
+    gtk_style_properties_unset_property (properties,
+                                         "background-color",
+                                         state);
 
   context = gtk_widget_get_style_context (widget);
   gtk_style_context_invalidate (context);
@@ -8075,9 +8083,12 @@ gtk_widget_override_font (GtkWidget                  *widget,
 
   properties = _gtk_widget_get_modifier_properties (widget);
 
-  gtk_style_properties_set (properties, 0,
-                            "font", font_desc,
-                            NULL);
+  if (font_desc)
+    gtk_style_properties_set (properties, 0,
+                              "font", font_desc,
+                              NULL);
+  else
+    gtk_style_properties_unset_property (properties, "font", 0);
 
   context = gtk_widget_get_style_context (widget);
   gtk_style_context_invalidate (context);