summaryrefslogtreecommitdiff
path: root/gtk/gtkcssshorthandpropertyimpl.c
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2012-01-11 17:35:59 -0500
committerCosimo Cecchi <cosimoc@gnome.org>2012-01-11 17:35:59 -0500
commit09b4658c064056fc5d51c5cfdedebef74fef3b75 (patch)
treefb6a3e23b97a827daad7f81225c02e11bffcee03 /gtk/gtkcssshorthandpropertyimpl.c
parent984834ea5749b13e325d143783323f36433a7cff (diff)
downloadgtk+-09b4658c064056fc5d51c5cfdedebef74fef3b75.tar.gz
shorthand: fix parsing of currentColor for border-color shorthand
Code for border-color was missing the currentColor parsing.
Diffstat (limited to 'gtk/gtkcssshorthandpropertyimpl.c')
-rw-r--r--gtk/gtkcssshorthandpropertyimpl.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/gtk/gtkcssshorthandpropertyimpl.c b/gtk/gtkcssshorthandpropertyimpl.c
index aff350a4a4..02ff992000 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]);
}