From: Benjamin Otte Date: Fri, 5 May 2023 02:53:08 +0000 (+0200) Subject: rendernode: clip when drawing shadows X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~3^2~1^2~32 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=830d28df908f3a10d4025937d3a2818ff623a3df;p=gtk4.git rendernode: clip when drawing shadows Ensures the shadow stays small. --- diff --git a/gsk/gskrendernodeimpl.c b/gsk/gskrendernodeimpl.c index 6dcad3002f..9a08c2b134 100644 --- a/gsk/gskrendernodeimpl.c +++ b/gsk/gskrendernodeimpl.c @@ -4108,6 +4108,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]; @@ -4129,6 +4134,7 @@ gsk_shadow_node_draw (GskRenderNode *node, cairo_set_source (cr, pattern); cairo_paint (cr); + cairo_restore (cr); cairo_pattern_destroy (pattern); }