From d471ed5912c2f033323c9c730b584150e6c20edc Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 2 Aug 2024 12:14:15 -0400 Subject: [PATCH] gtk: Use new shadow snapshot apis Preserve color states from css as much as possible. --- gtk/gtkcssshadowvalue.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/gtk/gtkcssshadowvalue.c b/gtk/gtkcssshadowvalue.c index e37aa07756..26a1abe302 100644 --- a/gtk/gtkcssshadowvalue.c +++ b/gtk/gtkcssshadowvalue.c @@ -755,28 +755,31 @@ gboolean gtk_css_shadow_value_push_snapshot (const GtkCssValue *value, GtkSnapshot *snapshot) { - GskShadow *shadows; + GskShadow2 *shadows; guint i; if (gtk_css_shadow_value_is_clear (value)) return FALSE; - shadows = g_newa (GskShadow, value->n_shadows); + shadows = g_newa (GskShadow2, value->n_shadows); for (i = 0; i < value->n_shadows; i++) { const ShadowValue *shadow = &value->shadows[i]; - shadows[i].color = *gtk_css_color_value_get_rgba (shadow->color); - - shadows[i].dx = gtk_css_number_value_get (shadow->hoffset, 0); - shadows[i].dy = gtk_css_number_value_get (shadow->voffset, 0); + gtk_css_color_to_color (gtk_css_color_value_get_color (shadow->color), &shadows[i].color); + graphene_point_init (&shadows[i].offset, + gtk_css_number_value_get (shadow->hoffset, 0), + gtk_css_number_value_get (shadow->voffset, 0)); shadows[i].radius = gtk_css_number_value_get (shadow->radius, 0); if (value->is_filter) shadows[i].radius *= 2; } - gtk_snapshot_push_shadow (snapshot, shadows, value->n_shadows); + gtk_snapshot_push_shadow2 (snapshot, shadows, value->n_shadows); + + for (i = 0; i < value->n_shadows; i++) + gdk_color_finish (&shadows[i].color); return TRUE; }