]> Pileus Git - ~andy/gtk/commitdiff
shorthand: fix parsing of currentColor for border-color shorthand
authorCosimo Cecchi <cosimoc@gnome.org>
Wed, 11 Jan 2012 22:35:59 +0000 (17:35 -0500)
committerCosimo Cecchi <cosimoc@gnome.org>
Wed, 11 Jan 2012 22:35:59 +0000 (17:35 -0500)
Code for border-color was missing the currentColor parsing.

gtk/gtkcssshorthandpropertyimpl.c

index aff350a4a477fc883c48d7b17158cb20230c3867..02ff992000e7b4d9839573113ca2e27082c2bee4 100644 (file)
@@ -159,12 +159,20 @@ parse_border_color (GtkCssShorthandProperty *shorthand,
 
   for (i = 0; i < 4; i++)
     {
-      symbolic = _gtk_css_parser_read_symbolic_color (parser);
-      if (symbolic == NULL)
-        return FALSE;
+      if (_gtk_css_parser_try (parser, "currentcolor", TRUE))
+        {
+          g_value_init (&values[i], GTK_TYPE_CSS_SPECIAL_VALUE);
+          g_value_set_enum (&values[i], GTK_CSS_CURRENT_COLOR);
+        }
+      else
+        {
+          symbolic = _gtk_css_parser_read_symbolic_color (parser);
+          if (symbolic == NULL)
+            return FALSE;
 
-      g_value_init (&values[i], GTK_TYPE_SYMBOLIC_COLOR);
-      g_value_set_boxed (&values[i], symbolic);
+          g_value_init (&values[i], GTK_TYPE_SYMBOLIC_COLOR);
+          g_value_set_boxed (&values[i], symbolic);
+        }
 
       if (value_is_done_parsing (parser))
         break;
@@ -172,7 +180,7 @@ parse_border_color (GtkCssShorthandProperty *shorthand,
 
   for (i++; i < 4; i++)
     {
-      g_value_init (&values[i], GTK_TYPE_SYMBOLIC_COLOR);
+      g_value_init (&values[i], G_VALUE_TYPE (&values[(i - 1) >> 1]));
       g_value_copy (&values[(i - 1) >> 1], &values[i]);
     }