]> Pileus Git - ~andy/gtk/commitdiff
styleproperty: Fall back to default values, instead of recursing
authorBenjamin Otte <otte@redhat.com>
Sat, 11 Jun 2011 08:02:58 +0000 (10:02 +0200)
committerBenjamin Otte <otte@redhat.com>
Sat, 11 Jun 2011 08:38:23 +0000 (10:38 +0200)
Copy/paste error. The original commit message even explains this.

gtk/gtkstyleproperty.c

index 73b09dc2b3e9c8a3799b019200f9512c46643070..ee3ce04e865cd390d1e6e17c4098a3711cec5a32 100644 (file)
@@ -1976,28 +1976,34 @@ _gtk_style_property_resolve (const GtkStyleProperty *property,
     {
       if (property->pspec->value_type == GDK_TYPE_RGBA)
         {
-          if (!resolve_color (props, val))
-            _gtk_style_property_resolve (property, props, val);
+          if (resolve_color (props, val))
+            return;
         }
       else if (property->pspec->value_type == GDK_TYPE_COLOR)
         {
-          if (!resolve_color_rgb (props, val))
-            _gtk_style_property_resolve (property, props, val);
+          if (resolve_color_rgb (props, val))
+            return;
         }
-      else
-        _gtk_style_property_resolve (property, props, val);
+      
+      g_value_unset (val);
+      g_value_init (val, property->pspec->value_type);
+      _gtk_style_property_default_value (property, props, val);
     }
   else if (G_VALUE_TYPE (val) == GTK_TYPE_GRADIENT)
     {
       g_return_if_fail (property->pspec->value_type == CAIRO_GOBJECT_TYPE_PATTERN);
 
       if (!resolve_gradient (props, val))
-        _gtk_style_property_resolve (property, props, val);
+        {
+          g_value_unset (val);
+          g_value_init (val, CAIRO_GOBJECT_TYPE_PATTERN);
+          _gtk_style_property_default_value (property, props, val);
+        }
     }
   else if (G_VALUE_TYPE (val) == GTK_TYPE_SHADOW)
     {
       if (!resolve_shadow (props, val))
-        _gtk_style_property_resolve (property, props, val);
+        _gtk_style_property_default_value (property, props, val);
     }
 }