diff options
author | Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> | 2014-04-11 13:57:15 +0300 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2014-04-11 10:05:19 -0700 |
commit | 304996d182874ded26adce40ce1c29210fc5352b (patch) | |
tree | 577777d939b2738d8e81da20c6a8e098b9b1f9b0 /desktop-shell/shell.h | |
parent | c107306db7fad3b93b9fb18d602c91b56c19923c (diff) | |
download | weston-304996d182874ded26adce40ce1c29210fc5352b.tar.gz |
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
Diffstat (limited to 'desktop-shell/shell.h')
-rw-r--r-- | desktop-shell/shell.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/desktop-shell/shell.h b/desktop-shell/shell.h index 5d127c6d..4ed11d54 100644 --- a/desktop-shell/shell.h +++ b/desktop-shell/shell.h @@ -236,3 +236,11 @@ int input_panel_setup(struct desktop_shell *shell); void input_panel_destroy(struct desktop_shell *shell); + +typedef void (*shell_for_each_layer_func_t)(struct desktop_shell *, + struct weston_layer *, void *); + +void +shell_for_each_layer(struct desktop_shell *shell, + shell_for_each_layer_func_t func, + void *data); |