summaryrefslogtreecommitdiff
path: root/gsk/gskrendernodeimpl.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2023-05-16 17:25:17 +0000
committerMatthias Clasen <mclasen@redhat.com>2023-05-16 17:25:17 +0000
commit4efc736a6ee9fdff0132b0f9b66a72c2989751cf (patch)
treed40d532bc6dcd8f330acd08ae4fa7fd6e941b427 /gsk/gskrendernodeimpl.c
parent4a1598dc2a316eb27046467a33c68ff1babb55fa (diff)
parent2b0e3a5b1a595c5c8463706452637c3ed716e0c8 (diff)
downloadgtk+-4efc736a6ee9fdff0132b0f9b66a72c2989751cf.tar.gz
Merge branch 'wip/otte/for-main' into 'main'
gdk: Clamp frame region to surface size Closes #5812 See merge request GNOME/gtk!5976
Diffstat (limited to 'gsk/gskrendernodeimpl.c')
-rw-r--r--gsk/gskrendernodeimpl.c6
1 files changed, 6 insertions, 0 deletions
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);
}