From 4783d767d64f9da9d82d82104f35418444a900d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Thu, 13 Feb 2020 13:08:28 +0100 Subject: [PATCH] blur-effect: Properly clear background framebuffer We want to completely clear the background framebuffer when switching back to ACTOR mode to make sure the `background_fb.framebuffer` check will fail in `update_background_fbo` when switching to BACKGROUND mode again. Otherwise the checks in `update_background_fbo` will return TRUE and we will keep using the background framebuffer that was created before switchig to ACTOR mode. While at it, also clear the background framebuffer completely when changing the actor to avoid the same issue here. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1000 --- src/shell-blur-effect.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/shell-blur-effect.c b/src/shell-blur-effect.c index eef071f86..c3fb3bc60 100644 --- a/src/shell-blur-effect.c +++ b/src/shell-blur-effect.c @@ -513,6 +513,7 @@ shell_blur_effect_set_actor (ClutterActorMeta *meta, /* clear out the previous state */ clear_framebuffer_data (&self->actor_fb); + clear_framebuffer_data (&self->background_fb); clear_framebuffer_data (&self->brightness_fb); clear_framebuffer_data (&self->blur[VERTICAL].data); clear_framebuffer_data (&self->blur[HORIZONTAL].data); @@ -1049,7 +1050,7 @@ shell_blur_effect_set_mode (ShellBlurEffect *self, switch (mode) { case SHELL_BLUR_MODE_ACTOR: - clear_framebuffer (self->background_fb.framebuffer); + clear_framebuffer_data (&self->background_fb); break; case SHELL_BLUR_MODE_BACKGROUND: