[PATCH] shell: position input panel layer above fullscreen layer

Kristian Høgsberg hoegsberg at gmail.com
Wed Apr 2 10:36:58 PDT 2014


On Wed, Mar 05, 2014 at 12:21:34PM +0100, Manuel Bachmann wrote:
> 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>
> ---

Makes sense, applied.

Kristian

>  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
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list