[gnome-shell] blur-effect: Properly clear background framebuffer



commit 4783d767d64f9da9d82d82104f35418444a900d8
Author: Jonas Dreßler <verdre v0yd nl>
Date:   Thu Feb 13 13:08:28 2020 +0100

    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 eef071f869..c3fb3bc60e 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:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]