diff options
author | Benjamin Otte <otte@redhat.com> | 2011-12-30 12:44:16 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2012-01-09 18:37:51 +0100 |
commit | c77dba276725b3963fe20b4e56e44d47e50e8833 (patch) | |
tree | 9714f4e4e5cd4ffebb697461fbf597f04ff9fc73 /gtk/gtkstyleproperty.c | |
parent | 78024504aafeef03d805b32be86d4fadd41933d1 (diff) | |
download | gtk+-c77dba276725b3963fe20b4e56e44d47e50e8833.tar.gz |
styleproperty: Add custom 'none' handling
The generic 'none' handling needs to go, because 'none' is not a valid
value most of the time.
Diffstat (limited to 'gtk/gtkstyleproperty.c')
-rw-r--r-- | gtk/gtkstyleproperty.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/gtk/gtkstyleproperty.c b/gtk/gtkstyleproperty.c index 81f1cfda02..464875b7cd 100644 --- a/gtk/gtkstyleproperty.c +++ b/gtk/gtkstyleproperty.c @@ -557,6 +557,12 @@ theming_engine_value_parse (GtkCssParser *parser, GtkThemingEngine *engine; char *str; + if (_gtk_css_parser_try (parser, "none", TRUE)) + { + g_value_set_object (value, gtk_theming_engine_load (NULL)); + return TRUE; + } + str = _gtk_css_parser_try_ident (parser, TRUE); if (str == NULL) { @@ -565,6 +571,7 @@ theming_engine_value_parse (GtkCssParser *parser, } engine = gtk_theming_engine_load (str); + if (engine == NULL) { _gtk_css_parser_error (parser, "Themeing engine '%s' not found", str); @@ -976,7 +983,11 @@ pattern_value_parse (GtkCssParser *parser, GFile *base, GValue *value) { - if (_gtk_css_parser_begins_with (parser, '-')) + if (_gtk_css_parser_try (parser, "none", TRUE)) + { + /* nothing to do here */ + } + else if (_gtk_css_parser_begins_with (parser, '-')) { int res; res = _gtk_win32_theme_part_parse (parser, base, value); @@ -1115,6 +1126,9 @@ shadow_value_parse (GtkCssParser *parser, shadow = _gtk_shadow_new (); + if (_gtk_css_parser_try (parser, "none", TRUE)) + return TRUE; + do { have_inset = have_lengths = have_color = FALSE; @@ -1290,6 +1304,9 @@ border_image_value_parse (GtkCssParser *parser, gboolean retval = FALSE; GtkBorderImage *image = NULL; + if (_gtk_css_parser_try (parser, "none", TRUE)) + return TRUE; + g_value_init (&temp, CAIRO_GOBJECT_TYPE_PATTERN); if (!pattern_value_parse (parser, base, &temp)) |