diff options
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkcssarrayvalue.c | 11 | ||||
-rw-r--r-- | gtk/gtkcssbgsizevalue.c | 13 | ||||
-rw-r--r-- | gtk/gtkcssbordervalue.c | 11 | ||||
-rw-r--r-- | gtk/gtkcsscomputedvalues.c | 2 | ||||
-rw-r--r-- | gtk/gtkcsscornervalue.c | 13 | ||||
-rw-r--r-- | gtk/gtkcsseasevalue.c | 7 | ||||
-rw-r--r-- | gtk/gtkcssenginevalue.c | 7 | ||||
-rw-r--r-- | gtk/gtkcssenumvalue.c | 7 | ||||
-rw-r--r-- | gtk/gtkcssimagelinear.c | 6 | ||||
-rw-r--r-- | gtk/gtkcssimagevalue.c | 9 | ||||
-rw-r--r-- | gtk/gtkcssinheritvalue.c | 12 | ||||
-rw-r--r-- | gtk/gtkcssinitialvalue.c | 10 | ||||
-rw-r--r-- | gtk/gtkcssnumbervalue.c | 9 | ||||
-rw-r--r-- | gtk/gtkcsspositionvalue.c | 13 | ||||
-rw-r--r-- | gtk/gtkcssrepeatvalue.c | 7 | ||||
-rw-r--r-- | gtk/gtkcssrgbavalue.c | 7 | ||||
-rw-r--r-- | gtk/gtkcssshadowsvalue.c | 11 | ||||
-rw-r--r-- | gtk/gtkcssshadowvalue.c | 19 | ||||
-rw-r--r-- | gtk/gtkcssstringvalue.c | 7 | ||||
-rw-r--r-- | gtk/gtkcsstypedvalue.c | 9 | ||||
-rw-r--r-- | gtk/gtkcsstypesprivate.h | 10 | ||||
-rw-r--r-- | gtk/gtkcssvalue.c | 20 | ||||
-rw-r--r-- | gtk/gtkcssvalueprivate.h | 6 | ||||
-rw-r--r-- | gtk/gtksymboliccolor.c | 12 |
24 files changed, 153 insertions, 85 deletions
diff --git a/gtk/gtkcssarrayvalue.c b/gtk/gtkcssarrayvalue.c index a4fa0f4b62..418ac65598 100644 --- a/gtk/gtkcssarrayvalue.c +++ b/gtk/gtkcssarrayvalue.c @@ -41,9 +41,10 @@ gtk_css_value_array_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_array_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +gtk_css_value_array_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { GtkCssValue *result; gboolean changed = FALSE; @@ -52,10 +53,12 @@ gtk_css_value_array_compute (GtkCssValue *value, if (value->n_values == 0) return _gtk_css_value_ref (value); + *dependencies = GTK_CSS_DEPENDS_ON_EVERYTHING; + result = _gtk_css_array_value_new_from_array (value->values, value->n_values); for (i = 0; i < value->n_values; i++) { - result->values[i] = _gtk_css_value_compute (value->values[i], property_id, context); + result->values[i] = _gtk_css_value_compute (value->values[i], property_id, context, NULL); changed |= (result->values[i] != value->values[i]); } diff --git a/gtk/gtkcssbgsizevalue.c b/gtk/gtkcssbgsizevalue.c index 38f605496e..2bff385b9f 100644 --- a/gtk/gtkcssbgsizevalue.c +++ b/gtk/gtkcssbgsizevalue.c @@ -41,15 +41,18 @@ gtk_css_value_bg_size_free (GtkCssValue *value) } GtkCssValue * -gtk_css_value_bg_size_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +gtk_css_value_bg_size_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { if (value->x == NULL && value->y == NULL) return _gtk_css_value_ref (value); - return _gtk_css_bg_size_value_new (value->x ? _gtk_css_value_compute (value->x, property_id, context) : NULL, - value->y ? _gtk_css_value_compute (value->y, property_id, context) : NULL); + *dependencies = GTK_CSS_DEPENDS_ON_EVERYTHING; + + 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); } static gboolean diff --git a/gtk/gtkcssbordervalue.c b/gtk/gtkcssbordervalue.c index 45f7fd14e4..085e3f2e40 100644 --- a/gtk/gtkcssbordervalue.c +++ b/gtk/gtkcssbordervalue.c @@ -42,14 +42,17 @@ gtk_css_value_border_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_border_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +gtk_css_value_border_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { GtkCssValue *computed; gboolean changed = FALSE; guint i; + *dependencies = GTK_CSS_DEPENDS_ON_EVERYTHING; + computed = _gtk_css_border_value_new (NULL, NULL, NULL, NULL); computed->fill = value->fill; @@ -57,7 +60,7 @@ gtk_css_value_border_compute (GtkCssValue *value, { if (value->values[i]) { - computed->values[i] = _gtk_css_value_compute (value->values[i], property_id, context); + computed->values[i] = _gtk_css_value_compute (value->values[i], property_id, context, NULL); changed |= (computed->values[i] != value->values[i]); } } diff --git a/gtk/gtkcsscomputedvalues.c b/gtk/gtkcsscomputedvalues.c index 7aa121f023..ad0353046d 100644 --- a/gtk/gtkcsscomputedvalues.c +++ b/gtk/gtkcsscomputedvalues.c @@ -113,7 +113,7 @@ _gtk_css_computed_values_compute_value (GtkCssComputedValues *values, else _gtk_css_value_ref (specified); - g_ptr_array_index (values->values, id) = _gtk_css_value_compute (specified, id, context); + g_ptr_array_index (values->values, id) = _gtk_css_value_compute (specified, id, context, NULL); if (section) { diff --git a/gtk/gtkcsscornervalue.c b/gtk/gtkcsscornervalue.c index 7e41688950..8710243aff 100644 --- a/gtk/gtkcsscornervalue.c +++ b/gtk/gtkcsscornervalue.c @@ -37,14 +37,17 @@ gtk_css_value_corner_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_corner_compute (GtkCssValue *corner, - guint property_id, - GtkStyleContext *context) +gtk_css_value_corner_compute (GtkCssValue *corner, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { GtkCssValue *x, *y; - x = _gtk_css_value_compute (corner->x, property_id, context); - y = _gtk_css_value_compute (corner->y, property_id, context); + *dependencies = GTK_CSS_DEPENDS_ON_EVERYTHING; + + x = _gtk_css_value_compute (corner->x, property_id, context, NULL); + y = _gtk_css_value_compute (corner->y, property_id, context, NULL); if (x == corner->x && y == corner->y) { _gtk_css_value_unref (x); diff --git a/gtk/gtkcsseasevalue.c b/gtk/gtkcsseasevalue.c index 122d6c1299..81c9bce56a 100644 --- a/gtk/gtkcsseasevalue.c +++ b/gtk/gtkcsseasevalue.c @@ -50,9 +50,10 @@ gtk_css_value_ease_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_ease_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +gtk_css_value_ease_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { return _gtk_css_value_ref (value); } diff --git a/gtk/gtkcssenginevalue.c b/gtk/gtkcssenginevalue.c index 8041090a09..a39ac6c57d 100644 --- a/gtk/gtkcssenginevalue.c +++ b/gtk/gtkcssenginevalue.c @@ -35,9 +35,10 @@ gtk_css_value_engine_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_engine_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +gtk_css_value_engine_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { return _gtk_css_value_ref (value); } diff --git a/gtk/gtkcssenumvalue.c b/gtk/gtkcssenumvalue.c index fb9c836388..9ea7ae8f01 100644 --- a/gtk/gtkcssenumvalue.c +++ b/gtk/gtkcssenumvalue.c @@ -36,9 +36,10 @@ gtk_css_value_enum_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_enum_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +gtk_css_value_enum_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { return _gtk_css_value_ref (value); } diff --git a/gtk/gtkcssimagelinear.c b/gtk/gtkcssimagelinear.c index 10977e8ff2..998d3660cf 100644 --- a/gtk/gtkcssimagelinear.c +++ b/gtk/gtkcssimagelinear.c @@ -420,7 +420,7 @@ gtk_css_image_linear_compute (GtkCssImage *image, copy = g_object_new (GTK_TYPE_CSS_IMAGE_LINEAR, NULL); copy->repeating = linear->repeating; - copy->angle = _gtk_css_value_compute (linear->angle, property_id, context); + copy->angle = _gtk_css_value_compute (linear->angle, property_id, context, NULL); g_array_set_size (copy->stops, linear->stops->len); for (i = 0; i < linear->stops->len; i++) @@ -430,10 +430,10 @@ gtk_css_image_linear_compute (GtkCssImage *image, stop = &g_array_index (linear->stops, GtkCssImageLinearColorStop, i); scopy = &g_array_index (copy->stops, GtkCssImageLinearColorStop, i); - scopy->color = _gtk_css_value_compute (stop->color, property_id, context); + scopy->color = _gtk_css_value_compute (stop->color, property_id, context, NULL); if (stop->offset) - scopy->offset = _gtk_css_value_compute (stop->offset, property_id, context); + scopy->offset = _gtk_css_value_compute (stop->offset, property_id, context, NULL); else scopy->offset = NULL; } diff --git a/gtk/gtkcssimagevalue.c b/gtk/gtkcssimagevalue.c index 5cd4929234..e56db9d476 100644 --- a/gtk/gtkcssimagevalue.c +++ b/gtk/gtkcssimagevalue.c @@ -34,9 +34,10 @@ gtk_css_value_image_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_image_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +gtk_css_value_image_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { GtkCssImage *image, *computed; @@ -53,6 +54,8 @@ gtk_css_value_image_compute (GtkCssValue *value, return _gtk_css_value_ref (value); } + *dependencies = GTK_CSS_DEPENDS_ON_EVERYTHING; + return _gtk_css_image_value_new (computed); } diff --git a/gtk/gtkcssinheritvalue.c b/gtk/gtkcssinheritvalue.c index 6faeef3c84..58964be240 100644 --- a/gtk/gtkcssinheritvalue.c +++ b/gtk/gtkcssinheritvalue.c @@ -34,18 +34,22 @@ gtk_css_value_inherit_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_inherit_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +gtk_css_value_inherit_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { GtkStyleContext *parent = gtk_style_context_get_parent (context); + *dependencies = GTK_CSS_DEPENDS_ON_EVERYTHING; + if (parent) return _gtk_css_value_ref (_gtk_style_context_peek_property (parent, property_id)); else return _gtk_css_value_compute (_gtk_css_style_property_get_initial_value (_gtk_css_style_property_lookup_by_id (property_id)), property_id, - context); + context, + NULL); } static gboolean diff --git a/gtk/gtkcssinitialvalue.c b/gtk/gtkcssinitialvalue.c index 7bebbc87d7..45cadd7c17 100644 --- a/gtk/gtkcssinitialvalue.c +++ b/gtk/gtkcssinitialvalue.c @@ -33,13 +33,15 @@ gtk_css_value_initial_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_initial_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +gtk_css_value_initial_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { return _gtk_css_value_compute (_gtk_css_style_property_get_initial_value (_gtk_css_style_property_lookup_by_id (property_id)), property_id, - context); + context, + dependencies); } static gboolean diff --git a/gtk/gtkcssnumbervalue.c b/gtk/gtkcssnumbervalue.c index 479662c22b..535c20587f 100644 --- a/gtk/gtkcssnumbervalue.c +++ b/gtk/gtkcssnumbervalue.c @@ -35,9 +35,10 @@ gtk_css_value_number_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_number_compute (GtkCssValue *number, - guint property_id, - GtkStyleContext *context) +gtk_css_value_number_compute (GtkCssValue *number, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { GtkBorderStyle border_style; @@ -73,6 +74,8 @@ gtk_css_value_number_compute (GtkCssValue *number, break; } + *dependencies = GTK_CSS_DEPENDS_ON_EVERYTHING; + switch (number->unit) { default: diff --git a/gtk/gtkcsspositionvalue.c b/gtk/gtkcsspositionvalue.c index 9f4b0d3f0a..6a6cbe3828 100644 --- a/gtk/gtkcsspositionvalue.c +++ b/gtk/gtkcsspositionvalue.c @@ -37,14 +37,15 @@ gtk_css_value_position_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_position_compute (GtkCssValue *position, - guint property_id, - GtkStyleContext *context) +gtk_css_value_position_compute (GtkCssValue *position, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { GtkCssValue *x, *y; - x = _gtk_css_value_compute (position->x, property_id, context); - y = _gtk_css_value_compute (position->y, property_id, context); + x = _gtk_css_value_compute (position->x, property_id, context, NULL); + y = _gtk_css_value_compute (position->y, property_id, context, NULL); if (x == position->x && y == position->y) { _gtk_css_value_unref (x); @@ -52,6 +53,8 @@ gtk_css_value_position_compute (GtkCssValue *position, return _gtk_css_value_ref (position); } + *dependencies = GTK_CSS_DEPENDS_ON_EVERYTHING; + return _gtk_css_position_value_new (x, y); } diff --git a/gtk/gtkcssrepeatvalue.c b/gtk/gtkcssrepeatvalue.c index 97fe41f349..6f070727e8 100644 --- a/gtk/gtkcssrepeatvalue.c +++ b/gtk/gtkcssrepeatvalue.c @@ -34,9 +34,10 @@ gtk_css_value_repeat_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_repeat_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +gtk_css_value_repeat_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { return _gtk_css_value_ref (value); } diff --git a/gtk/gtkcssrgbavalue.c b/gtk/gtkcssrgbavalue.c index 7a641a3a77..3bb6897d13 100644 --- a/gtk/gtkcssrgbavalue.c +++ b/gtk/gtkcssrgbavalue.c @@ -35,9 +35,10 @@ gtk_css_value_rgba_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_rgba_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +gtk_css_value_rgba_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { return _gtk_css_value_ref (value); } diff --git a/gtk/gtkcssshadowsvalue.c b/gtk/gtkcssshadowsvalue.c index 387076eb38..ce37d86b4d 100644 --- a/gtk/gtkcssshadowsvalue.c +++ b/gtk/gtkcssshadowsvalue.c @@ -48,9 +48,10 @@ gtk_css_value_shadows_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_shadows_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +gtk_css_value_shadows_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { GtkCssValue *result; guint i; @@ -58,10 +59,12 @@ gtk_css_value_shadows_compute (GtkCssValue *value, if (value->len == 0) return _gtk_css_value_ref (value); + *dependencies = GTK_CSS_DEPENDS_ON_EVERYTHING; + result = gtk_css_shadows_value_new (value->values, value->len); for (i = 0; i < value->len; i++) { - result->values[i] = _gtk_css_value_compute (value->values[i], property_id, context); + result->values[i] = _gtk_css_value_compute (value->values[i], property_id, context, NULL); } return result; diff --git a/gtk/gtkcssshadowvalue.c b/gtk/gtkcssshadowvalue.c index 3351d6f8dd..9b2d897aea 100644 --- a/gtk/gtkcssshadowvalue.c +++ b/gtk/gtkcssshadowvalue.c @@ -60,16 +60,19 @@ gtk_css_value_shadow_free (GtkCssValue *shadow) } static GtkCssValue * -gtk_css_value_shadow_compute (GtkCssValue *shadow, - guint property_id, - GtkStyleContext *context) +gtk_css_value_shadow_compute (GtkCssValue *shadow, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { - return gtk_css_shadow_value_new (_gtk_css_value_compute (shadow->hoffset, property_id, context), - _gtk_css_value_compute (shadow->voffset, property_id, context), - _gtk_css_value_compute (shadow->radius, property_id, context), - _gtk_css_value_compute (shadow->spread, property_id, context), + *dependencies = GTK_CSS_DEPENDS_ON_EVERYTHING; + + return gtk_css_shadow_value_new (_gtk_css_value_compute (shadow->hoffset, property_id, context, NULL), + _gtk_css_value_compute (shadow->voffset, property_id, context, NULL), + _gtk_css_value_compute (shadow->radius, property_id, context, NULL), + _gtk_css_value_compute (shadow->spread, property_id, context, NULL), shadow->inset, - _gtk_css_value_compute (shadow->color, property_id, context)); + _gtk_css_value_compute (shadow->color, property_id, context, NULL)); } static gboolean diff --git a/gtk/gtkcssstringvalue.c b/gtk/gtkcssstringvalue.c index 2bc140dd97..328fd21dc5 100644 --- a/gtk/gtkcssstringvalue.c +++ b/gtk/gtkcssstringvalue.c @@ -33,9 +33,10 @@ gtk_css_value_string_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_string_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +gtk_css_value_string_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { return _gtk_css_value_ref (value); } diff --git a/gtk/gtkcsstypedvalue.c b/gtk/gtkcsstypedvalue.c index 60eeea8c68..fd8f0ad925 100644 --- a/gtk/gtkcsstypedvalue.c +++ b/gtk/gtkcsstypedvalue.c @@ -35,12 +35,15 @@ gtk_css_value_typed_free (GtkCssValue *value) } static GtkCssValue * -gtk_css_value_typed_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +gtk_css_value_typed_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { GtkCssCustomProperty *custom = GTK_CSS_CUSTOM_PROPERTY (_gtk_css_style_property_lookup_by_id (property_id)); + *dependencies = GTK_CSS_DEPENDS_ON_EVERYTHING; + return _gtk_css_style_compute_value (context, custom->pspec->value_type, value); } diff --git a/gtk/gtkcsstypesprivate.h b/gtk/gtkcsstypesprivate.h index b0db18d0b9..dfc9527e0d 100644 --- a/gtk/gtkcsstypesprivate.h +++ b/gtk/gtkcsstypesprivate.h @@ -56,6 +56,16 @@ typedef enum { /*< skip >*/ GTK_CSS_CHANGE_PARENT_POSITION | GTK_CSS_CHANGE_PARENT_SIBLING_POSITION | \ GTK_CSS_CHANGE_PARENT_STATE | GTK_CSS_CHANGE_PARENT_SIBLING_STATE) +typedef enum /*< skip >*/ { + GTK_CSS_DEPENDS_ON_PARENT = (1 << 0), + GTK_CSS_EQUALS_PARENT = (1 << 1), + GTK_CSS_DEPENDS_ON_COLOR = (1 << 2), + GTK_CSS_DEPENDS_ON_FONT_SIZE = (1 << 3) +} GtkCssDependencies; + +#define GTK_CSS_DEPENDS_ON_EVERYTHING (GTK_CSS_DEPENDS_ON_PARENT | GTK_CSS_EQUALS_PARENT \ + | GTK_CSS_DEPENDS_ON_COLOR | GTK_CSS_DEPENDS_ON_FONT_SIZE) + enum { /*< skip >*/ GTK_CSS_PROPERTY_COLOR, GTK_CSS_PROPERTY_FONT_SIZE, diff --git a/gtk/gtkcssvalue.c b/gtk/gtkcssvalue.c index 5d5d39227f..e057f90b50 100644 --- a/gtk/gtkcssvalue.c +++ b/gtk/gtkcssvalue.c @@ -66,6 +66,9 @@ _gtk_css_value_unref (GtkCssValue *value) * @value: the value to compute from * @property_id: the ID of the property to compute * @context: the context to use for resolving + * @dependencies: (out) (allow-none): Set to the dependencies of the + * computed values that indicate when this value needs to be + * recomputed and how. * * Converts the specified @value into the computed value for the CSS * property given by @property_id using the information in @context. @@ -73,17 +76,24 @@ _gtk_css_value_unref (GtkCssValue *value) * <ulink url="http://www.w3.org/TR/css3-cascade/#computed> * the CSS documentation</ulink>. * - * Returns: the comptued value + * Returns: the computed value **/ GtkCssValue * -_gtk_css_value_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +_gtk_css_value_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { + GtkCssDependencies fallback; + g_return_val_if_fail (value != NULL, NULL); g_return_val_if_fail (GTK_IS_STYLE_CONTEXT (context), NULL); - return value->class->compute (value, property_id, context); + if (dependencies == NULL) + dependencies = &fallback; + *dependencies = 0; + + return value->class->compute (value, property_id, context, dependencies); } gboolean diff --git a/gtk/gtkcssvalueprivate.h b/gtk/gtkcssvalueprivate.h index 74550f794e..629cc754b2 100644 --- a/gtk/gtkcssvalueprivate.h +++ b/gtk/gtkcssvalueprivate.h @@ -44,7 +44,8 @@ struct _GtkCssValueClass { GtkCssValue * (* compute) (GtkCssValue *value, guint property_id, - GtkStyleContext *context); + GtkStyleContext *context, + GtkCssDependencies *dependencies); gboolean (* equal) (const GtkCssValue *value1, const GtkCssValue *value2); GtkCssValue * (* transition) (GtkCssValue *start, @@ -65,7 +66,8 @@ void _gtk_css_value_unref (GtkCssValue GtkCssValue *_gtk_css_value_compute (GtkCssValue *value, guint property_id, - GtkStyleContext *context); + GtkStyleContext *context, + GtkCssDependencies *dependencies); gboolean _gtk_css_value_equal (const GtkCssValue *value1, const GtkCssValue *value2); gboolean _gtk_css_value_equal0 (const GtkCssValue *value1, diff --git a/gtk/gtksymboliccolor.c b/gtk/gtksymboliccolor.c index 8429bbc67b..9fcfd4957e 100644 --- a/gtk/gtksymboliccolor.c +++ b/gtk/gtksymboliccolor.c @@ -142,7 +142,8 @@ gtk_css_value_symbolic_get_fallback (guint property_id, case GTK_CSS_PROPERTY_OUTLINE_COLOR: return _gtk_css_value_compute (_gtk_css_style_property_get_initial_value (_gtk_css_style_property_lookup_by_id (property_id)), property_id, - context); + context, + NULL); default: if (property_id < GTK_CSS_PROPERTY_N_PROPERTIES) g_warning ("No fallback color defined for property '%s'", @@ -152,12 +153,15 @@ gtk_css_value_symbolic_get_fallback (guint property_id, } static GtkCssValue * -gtk_css_value_symbolic_compute (GtkCssValue *value, - guint property_id, - GtkStyleContext *context) +gtk_css_value_symbolic_compute (GtkCssValue *value, + guint property_id, + GtkStyleContext *context, + GtkCssDependencies *dependencies) { GtkCssValue *resolved, *current; + *dependencies = GTK_CSS_DEPENDS_ON_EVERYTHING; + /* The computed value of the ‘currentColor’ keyword is the computed * value of the ‘color’ property. If the ‘currentColor’ keyword is * set on the ‘color’ property itself, it is treated as ‘color: inherit’. |