shell: position input panel layer above fullscreen layer

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@open.eurogiciel.org>
This commit is contained in:
Manuel Bachmann 2014-03-05 12:21:34 +01:00 committed by Kristian Høgsberg
parent c1ae2e817e
commit 805d2f536a
2 changed files with 10 additions and 9 deletions

View file

@ -63,7 +63,7 @@ show_input_panels(struct wl_listener *listener, void *data)
shell->showing_input_panels = true; shell->showing_input_panels = true;
if (!shell->locked) if (!shell->locked)
wl_list_insert(&shell->panel_layer.link, wl_list_insert(&shell->compositor->cursor_layer.link,
&shell->input_panel_layer.link); &shell->input_panel_layer.link);
wl_list_for_each_safe(ipsurf, next, wl_list_for_each_safe(ipsurf, next,

View file

@ -72,9 +72,9 @@ enum shell_surface_type {
* in the following order (top-most first): * in the following order (top-most first):
* Lock layer (only ever displayed on its own) * Lock layer (only ever displayed on its own)
* Cursor layer * Cursor layer
* Input panel layer
* Fullscreen layer * Fullscreen layer
* Panel layer * Panel layer
* Input panel layer
* Workspace layers * Workspace layers
* Background layer * Background layer
* *
@ -3886,18 +3886,19 @@ resume_desktop(struct desktop_shell *shell)
terminate_screensaver(shell); terminate_screensaver(shell);
wl_list_remove(&shell->lock_layer.link); 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) { 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); &shell->input_panel_layer.link);
wl_list_insert(&shell->input_panel_layer.link, wl_list_insert(&shell->input_panel_layer.link,
&ws->layer.link); &shell->fullscreen_layer.link);
} else { } 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)); restore_focus_state(shell, get_current_workspace(shell));