summaryrefslogtreecommitdiff
path: root/desktop-shell/shell.h
diff options
context:
space:
mode:
authorAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>2014-04-11 13:57:15 +0300
committerKristian Høgsberg <krh@bitplanet.net>2014-04-11 10:05:19 -0700
commit304996d182874ded26adce40ce1c29210fc5352b (patch)
tree577777d939b2738d8e81da20c6a8e098b9b1f9b0 /desktop-shell/shell.h
parentc107306db7fad3b93b9fb18d602c91b56c19923c (diff)
downloadweston-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.h8
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);