css: Make image values resolve used values

Separate out computed and used values for this type.
This commit is contained in:
Matthias Clasen
2024-05-19 18:43:13 -04:00
parent e027843cb0
commit 36b55a8b57
2 changed files with 15 additions and 0 deletions

View File

@@ -143,6 +143,7 @@ _gtk_css_image_value_new (GtkCssImage *image)
value = gtk_css_value_new (GtkCssValue, &GTK_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));
}

View File

@@ -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