From 5a83f003c7ffa1c8a6dc140782dbe6a6cb291c81 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Thu, 2 Apr 2020 19:32:18 +0100 Subject: [PATCH] blur: Always allocate at least one pixel This works around a crash when we try to blur a background that hasn't yet had any space allocated for it, in particular when locking the screen with mutter 3.36.1 and the Native Window Placement extension. Workaround for . Signed-off-by: Simon McVittie --- src/shell-blur-effect.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/shell-blur-effect.c b/src/shell-blur-effect.c index 5e50ab886..1da931542 100644 --- a/src/shell-blur-effect.c +++ b/src/shell-blur-effect.c @@ -360,6 +360,18 @@ update_fbo (FramebufferData *data, float new_width = floorf (width / downscale_factor); float new_height = floorf (height / downscale_factor); + if (G_UNLIKELY (new_width < 1.0f)) + { + g_warning ("%s: Correcting width from %f to 1", G_STRLOC, new_width); + new_width = 1.0f; + } + + if (G_UNLIKELY (new_height < 1.0f)) + { + g_warning ("%s: Correcting height from %f to 1", G_STRLOC, new_height); + new_height = 1.0f; + } + data->texture = cogl_texture_2d_new_with_size (ctx, new_width, new_height); if (!data->texture) return FALSE;