diff options
author | Matthias Clasen <mclasen@redhat.com> | 2023-05-16 17:25:17 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2023-05-16 17:25:17 +0000 |
commit | 4efc736a6ee9fdff0132b0f9b66a72c2989751cf (patch) | |
tree | d40d532bc6dcd8f330acd08ae4fa7fd6e941b427 /gsk/gskrendernodeimpl.c | |
parent | 4a1598dc2a316eb27046467a33c68ff1babb55fa (diff) | |
parent | 2b0e3a5b1a595c5c8463706452637c3ed716e0c8 (diff) | |
download | gtk+-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.c | 6 |
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); } |