[gtk+] shorthand: fix parsing of currentColor for border-color shorthand



commit 09b4658c064056fc5d51c5cfdedebef74fef3b75
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Wed Jan 11 17:35:59 2012 -0500

    shorthand: fix parsing of currentColor for border-color shorthand
    
    Code for border-color was missing the currentColor parsing.

 gtk/gtkcssshorthandpropertyimpl.c |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkcssshorthandpropertyimpl.c b/gtk/gtkcssshorthandpropertyimpl.c
index aff350a..02ff992 100644
--- a/gtk/gtkcssshorthandpropertyimpl.c
+++ b/gtk/gtkcssshorthandpropertyimpl.c
@@ -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]);
     }
 



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