diff --git a/gtk/gtkcssimagevalue.c b/gtk/gtkcssimagevalue.c index b9bb41e141..de3e607b11 100644 --- a/gtk/gtkcssimagevalue.c +++ b/gtk/gtkcssimagevalue.c @@ -143,6 +143,7 @@ _gtk_css_image_value_new (GtkCssImage *image) value = gtk_css_value_new (GtkCssValue, >K_CSS_VALUE_IMAGE); value->image = image; value->is_computed = gtk_css_image_is_computed (image); + value->contains_current_color = gtk_css_image_contains_current_color (image); return value; } @@ -155,3 +156,13 @@ _gtk_css_image_value_get_image (const GtkCssValue *value) return value->image; } +GtkCssValue * +gtk_css_image_value_resolve (GtkCssValue *value, + GtkCssComputeContext *context, + GtkCssValue *current_color) +{ + if (!gtk_css_value_contains_current_color (value)) + return gtk_css_value_ref (value); + + return _gtk_css_image_value_new (gtk_css_image_resolve (_gtk_css_image_value_get_image (value), context, current_color)); +} diff --git a/gtk/gtkcssimagevalueprivate.h b/gtk/gtkcssimagevalueprivate.h index 70a4523619..b130ba0397 100644 --- a/gtk/gtkcssimagevalueprivate.h +++ b/gtk/gtkcssimagevalueprivate.h @@ -28,6 +28,10 @@ GtkCssValue * _gtk_css_image_value_new (GtkCssImage *image); GtkCssImage * _gtk_css_image_value_get_image (const GtkCssValue *image); +GtkCssValue * gtk_css_image_value_resolve (GtkCssValue *value, + GtkCssComputeContext *context, + GtkCssValue *current_color); + G_END_DECLS