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 <https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2538>. Signed-off-by: Simon McVittie <smcv@debian.org>
This commit is contained in:
parent
0a4974ac8c
commit
5a83f003c7
@ -360,6 +360,18 @@ update_fbo (FramebufferData *data,
|
|||||||
float new_width = floorf (width / downscale_factor);
|
float new_width = floorf (width / downscale_factor);
|
||||||
float new_height = floorf (height / 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);
|
data->texture = cogl_texture_2d_new_with_size (ctx, new_width, new_height);
|
||||||
if (!data->texture)
|
if (!data->texture)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
Loading…
Reference in New Issue
Block a user