shell: set black surface alpha properly in switcher_next()
authorAlex Wu <zhiwen.wu@linux.intel.com>
Sun, 1 Apr 2012 12:13:09 +0000 (20:13 +0800)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 3 Apr 2012 02:17:04 +0000 (22:17 -0400)
Make the black surfaces semitransparent when switching surface, and
if associated fullscreen surface is chosen, make black surface opaque.

src/shell.c

index a4cf0b4..feb388f 100644 (file)
@@ -1950,6 +1950,12 @@ switcher_next(struct switcher *switcher)
                default:
                        break;
                }
+
+               if (is_black_surface(surface, NULL)) {
+                       surface->alpha = 64;
+                       surface->geometry.dirty = 1;
+                       weston_surface_damage(surface);
+               }
        }
 
        if (next == NULL)
@@ -1964,6 +1970,9 @@ switcher_next(struct switcher *switcher)
 
        switcher->current = next;
        next->alpha = 255;
+
+       if (get_shell_surface_type(switcher->current) == SHELL_SURFACE_FULLSCREEN)
+               get_shell_surface(switcher->current)->fullscreen.black_surface->alpha = 255;
 }
 
 static void