shell: Fix view repositioning logic for output move and destroy
authorAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Fri, 11 Apr 2014 10:57:15 +0000 (13:57 +0300)
committerKristian Høgsberg <krh@bitplanet.net>
Fri, 11 Apr 2014 17:05:19 +0000 (10:05 -0700)
commit304996d182874ded26adce40ce1c29210fc5352b
tree577777d939b2738d8e81da20c6a8e098b9b1f9b0
parentc107306db7fad3b93b9fb18d602c91b56c19923c
shell: Fix view repositioning logic for output move and destroy

Previously, the repositioning logic would iterate the compositor's list
of layers and move the views on those layers. However, that failed in
two different ways: it didn't cover hidden workspaces and crashed when
the display was locked.

This patch changes the logic to explicit iterate over all the layers
owned by the shell. The iteration is done through a helper function,
shell_for_each_layer().

https://bugs.freedesktop.org/show_bug.cgi?id=76859
https://bugs.freedesktop.org/show_bug.cgi?id=77290
desktop-shell/shell.c
desktop-shell/shell.h