summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);
}