From 085f0171c16547858ae250eb1ff3f3425d3a3e53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sun, 17 Oct 2021 12:15:34 +0200 Subject: [PATCH] Ensure blur nodes have a positive blur radius --- gsk/gskrendernodeimpl.c | 3 ++- gtk/gtksnapshot.c | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gsk/gskrendernodeimpl.c b/gsk/gskrendernodeimpl.c index 28cb14ae64..d318fe9eec 100644 --- a/gsk/gskrendernodeimpl.c +++ b/gsk/gskrendernodeimpl.c @@ -4858,7 +4858,7 @@ gsk_blur_node_diff (GskRenderNode *node1, /** * gsk_blur_node_new: * @child: the child node to blur - * @radius: the blur radius + * @radius: the blur radius. Must be positive * * Creates a render node that blurs the child. * @@ -4873,6 +4873,7 @@ gsk_blur_node_new (GskRenderNode *child, float clip_radius; g_return_val_if_fail (GSK_IS_RENDER_NODE (child), NULL); + g_return_val_if_fail (radius >= 0, NULL); self = gsk_render_node_alloc (GSK_BLUR_NODE); node = (GskRenderNode *) self; diff --git a/gtk/gtksnapshot.c b/gtk/gtksnapshot.c index 8b8627fb92..114c06fa84 100644 --- a/gtk/gtksnapshot.c +++ b/gtk/gtksnapshot.c @@ -520,6 +520,9 @@ gtk_snapshot_collect_blur (GtkSnapshot *snapshot, if (radius == 0.0) return node; + if (radius < 0) + return node; + blur_node = gsk_blur_node_new (node, radius); gsk_render_node_unref (node); @@ -530,7 +533,7 @@ gtk_snapshot_collect_blur (GtkSnapshot *snapshot, /** * gtk_snapshot_push_blur: * @snapshot: a `GtkSnapshot` - * @radius: the blur radius to use + * @radius: the blur radius to use. Must be positive * * Blurs an image. *