summaryrefslogtreecommitdiff
path: root/gtk/gtkcssbgsizevalue.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2012-08-25 11:22:14 -0400
committerBenjamin Otte <otte@redhat.com>2012-08-28 15:42:24 +0200
commit27fd3fdf818541948ec9077143cebf32b71f801f (patch)
tree80a9dfb00a342ca2f9c8e7b88247c605c061bc22 /gtk/gtkcssbgsizevalue.c
parent012526241a1024256459c127065603a5fd11cfd3 (diff)
downloadgtk+-27fd3fdf818541948ec9077143cebf32b71f801f.tar.gz
css: Handle some more simple cases of dependencies
Diffstat (limited to 'gtk/gtkcssbgsizevalue.c')
-rw-r--r--gtk/gtkcssbgsizevalue.c18
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