desktop-shell: Properly handle lowered fullscreen surfaces
authorEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Thu, 30 Jan 2014 13:01:10 +0000 (14:01 +0100)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 29 Apr 2014 23:33:56 +0000 (16:33 -0700)
commit9e7c7598aa44a9caaa5ebd525426623e8e86880e
tree5271fac90b4aeeb9b2c2d9c27c6d187679c3b01e
parentae356aef58866f32fbb5d127fce77ce31808fe86
desktop-shell: Properly handle lowered fullscreen surfaces

lower_fullscreen_surface() was removing fullscreen surfaces from
the fullscreen layer and inserting them in the normal workspace
layer. However, those fullscreen surfaces were never put back in
the fullscreen layer, causing bugs such as unrelated surfaces
being drawn between a fullscreen surface and its black view.

Change the lower_fullscreen_surface() logic so that it lowers
fullscreen surfaces to the workspace layer *and* hides the
black views. Make this reversible by re-configuring the lowered
fullscreen surface: when it is re-configured, the black view
will be shown again and the surface will be restacked in the
fullscreen layer.

https://bugs.freedesktop.org/show_bug.cgi?id=73575
https://bugs.freedesktop.org/show_bug.cgi?id=74221
https://bugs.freedesktop.org/show_bug.cgi?id=74222
desktop-shell/exposay.c
desktop-shell/shell.c
desktop-shell/shell.h