Ensure blur nodes have a positive blur radius

This commit is contained in:
Timm Bäder 2021-10-17 12:15:34 +02:00
parent e7ac8275ea
commit 085f0171c1
2 changed files with 6 additions and 2 deletions

View File

@ -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;

View File

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