From: Manuel Bachmann Date: Wed, 5 Mar 2014 11:21:34 +0000 (+0100) Subject: shell: position input panel layer above fullscreen layer X-Git-Tag: upstream/0.1.8~336 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=805d2f536a2c8869b73721200203bd6b354f3e9b;p=profile%2Fivi%2Fweston-ivi-shell.git 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 --- 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 97e8b1e..b4cd93c 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 * @@ -3886,18 +3886,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));