[PATCH] shell: position input panel layer above fullscreen layer
Manuel Bachmann
manuel.bachmann at open.eurogiciel.org
Wed Mar 5 03:21:34 PST 2014
When a client calls the input panel (weston-keyboard e.g.)
and then goes fullscreen, the panel will not be hidden
anymore.
Signed-off-by: Manuel Bachmann <manuel.bachmann at open.eurogiciel.org>
---
desktop-shell/input-panel.c | 2 +-
desktop-shell/shell.c | 17 +++++++++--------
2 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/desktop-shell/input-panel.c b/desktop-shell/input-panel.c
index c08a403..12fe686 100644
--- a/desktop-shell/input-panel.c
+++ b/desktop-shell/input-panel.c
@@ -63,7 +63,7 @@ show_input_panels(struct wl_listener *listener, void *data)
shell->showing_input_panels = true;
if (!shell->locked)
- wl_list_insert(&shell->panel_layer.link,
+ wl_list_insert(&shell->compositor->cursor_layer.link,
&shell->input_panel_layer.link);
wl_list_for_each_safe(ipsurf, next,
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index fd9ead0..09d1914 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -72,9 +72,9 @@ enum shell_surface_type {
* in the following order (top-most first):
* • Lock layer (only ever displayed on its own)
* • Cursor layer
+ * • Input panel layer
* • Fullscreen layer
* • Panel layer
- * • Input panel layer
* • Workspace layers
* • Background layer
*
@@ -3794,18 +3794,19 @@ resume_desktop(struct desktop_shell *shell)
terminate_screensaver(shell);
wl_list_remove(&shell->lock_layer.link);
- wl_list_insert(&shell->compositor->cursor_layer.link,
- &shell->fullscreen_layer.link);
- wl_list_insert(&shell->fullscreen_layer.link,
- &shell->panel_layer.link);
if (shell->showing_input_panels) {
- wl_list_insert(&shell->panel_layer.link,
+ wl_list_insert(&shell->compositor->cursor_layer.link,
&shell->input_panel_layer.link);
wl_list_insert(&shell->input_panel_layer.link,
- &ws->layer.link);
+ &shell->fullscreen_layer.link);
} else {
- wl_list_insert(&shell->panel_layer.link, &ws->layer.link);
+ wl_list_insert(&shell->compositor->cursor_layer.link,
+ &shell->fullscreen_layer.link);
}
+ wl_list_insert(&shell->fullscreen_layer.link,
+ &shell->panel_layer.link);
+ wl_list_insert(&shell->panel_layer.link,
+ &ws->layer.link),
restore_focus_state(shell, get_current_workspace(shell));
--
1.7.10.4
More information about the wayland-devel
mailing list