summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2011-12-30 12:44:16 +0100
committerBenjamin Otte <otte@redhat.com>2012-01-09 18:37:51 +0100
commitc77dba276725b3963fe20b4e56e44d47e50e8833 (patch)
tree9714f4e4e5cd4ffebb697461fbf597f04ff9fc73 /gtk
parent78024504aafeef03d805b32be86d4fadd41933d1 (diff)
downloadgtk+-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')
-rw-r--r--gtk/gtkstyleproperty.c19
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))