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. *