+static GtkCssValue *
+gtk_css_value_position_compute (GtkCssValue *position,
+ guint property_id,
+ GtkStyleProviderPrivate *provider,
+ GtkCssComputedValues *values,
+ GtkCssComputedValues *parent_values,
+ GtkCssDependencies *dependencies)
+{
+ GtkCssValue *x, *y;
+ GtkCssDependencies x_deps, y_deps;
+
+ x = _gtk_css_value_compute (position->x, property_id, provider, values, parent_values, &x_deps);
+ y = _gtk_css_value_compute (position->y, property_id, provider, values, parent_values, &y_deps);
+ *dependencies = _gtk_css_dependencies_union (x_deps, y_deps);
+ if (x == position->x && y == position->y)
+ {
+ _gtk_css_value_unref (x);
+ _gtk_css_value_unref (y);
+ return _gtk_css_value_ref (position);
+ }
+
+ return _gtk_css_position_value_new (x, y);
+}
+