From 8d528350b94f3df5987a2d18c8d0bb3796363dec Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 5 May 2023 04:53:08 +0200 Subject: rendernode: clip when drawing shadows Ensures the shadow stays small. --- gsk/gskrendernodeimpl.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gsk/gskrendernodeimpl.c b/gsk/gskrendernodeimpl.c index 90ef6fd13f..c60bd5b00f 100644 --- a/gsk/gskrendernodeimpl.c +++ b/gsk/gskrendernodeimpl.c @@ -4413,6 +4413,11 @@ gsk_shadow_node_draw (GskRenderNode *node, pattern = cairo_pop_group (cr); cairo_restore (cr); + cairo_save (cr); + /* clip so the blur area stays small */ + gsk_cairo_rectangle (cr, &node->bounds); + cairo_clip (cr); + for (i = 0; i < self->n_shadows; i++) { GskShadow *shadow = &self->shadows[i]; @@ -4434,6 +4439,7 @@ gsk_shadow_node_draw (GskRenderNode *node, cairo_set_source (cr, pattern); cairo_paint (cr); + cairo_restore (cr); cairo_pattern_destroy (pattern); } -- cgit v1.2.1