diff options
author | Matthias Clasen <mclasen@redhat.com> | 2012-08-25 11:22:14 -0400 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2012-08-28 15:42:24 +0200 |
commit | 27fd3fdf818541948ec9077143cebf32b71f801f (patch) | |
tree | 80a9dfb00a342ca2f9c8e7b88247c605c061bc22 /gtk/gtkcssbgsizevalue.c | |
parent | 012526241a1024256459c127065603a5fd11cfd3 (diff) | |
download | gtk+-27fd3fdf818541948ec9077143cebf32b71f801f.tar.gz |
css: Handle some more simple cases of dependencies
Diffstat (limited to 'gtk/gtkcssbgsizevalue.c')
-rw-r--r-- | gtk/gtkcssbgsizevalue.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/gtk/gtkcssbgsizevalue.c b/gtk/gtkcssbgsizevalue.c index 2bff385b9f..349a986f6c 100644 --- a/gtk/gtkcssbgsizevalue.c +++ b/gtk/gtkcssbgsizevalue.c @@ -46,13 +46,25 @@ gtk_css_value_bg_size_compute (GtkCssValue *value, GtkStyleContext *context, GtkCssDependencies *dependencies) { + GtkCssValue *x, *y; + GtkCssDependencies x_deps, y_deps; + if (value->x == NULL && value->y == NULL) return _gtk_css_value_ref (value); - *dependencies = GTK_CSS_DEPENDS_ON_EVERYTHING; + x_deps = y_deps = 0; + x = y = NULL; + + if (value->x) + x = _gtk_css_value_compute (value->x, property_id, context, &x_deps); + + if (value->y) + y = _gtk_css_value_compute (value->y, property_id, context, &y_deps); + + *dependencies = _gtk_css_dependencies_union (x_deps, y_deps); - return _gtk_css_bg_size_value_new (value->x ? _gtk_css_value_compute (value->x, property_id, context, NULL) : NULL, - value->y ? _gtk_css_value_compute (value->y, property_id, context, NULL) : NULL); + return _gtk_css_bg_size_value_new (value->x ? x : NULL, + value->y ? y : NULL); } static gboolean |