[PATCH] dim-layer: fix dimming for unfocused surfaces

Emilio Pozuelo Monfort pochu27 at gmail.com
Wed Jan 15 00:30:31 PST 2014


bump

On 07/01/14 17:23, pochu27 at gmail.com wrote:
> From: Emilio Pozuelo Monfort <emilio.pozuelo at collabora.co.uk>
> 
> Unfocusing a surface should dim it when dim-layer is enabled,
> but this got broken in commit 83ffd9.
> ---
>  desktop-shell/shell.c | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
> index f85a269..cca96be 100644
> --- a/desktop-shell/shell.c
> +++ b/desktop-shell/shell.c
> @@ -4141,6 +4141,7 @@ activate(struct desktop_shell *shell, struct weston_surface *es,
>  	 struct weston_seat *seat)
>  {
>  	struct weston_surface *main_surface;
> +	struct weston_view *main_view;
>  	struct focus_state *state;
>  	struct workspace *ws;
>  	struct weston_surface *old_es;
> @@ -4162,8 +4163,18 @@ activate(struct desktop_shell *shell, struct weston_surface *es,
>  	shsurf = get_shell_surface(main_surface);
>  	if (shsurf->state.fullscreen)
>  		shell_configure_fullscreen(shsurf);
> -	else
> +	else {
> +		ws = get_current_workspace(shell);
> +		main_view = get_default_view(main_surface);
> +		if (main_view) {
> +			wl_list_remove(&main_view->layer_link);
> +			wl_list_insert(&ws->layer.view_list, &main_view->layer_link);
> +			weston_view_damage_below(main_view);
> +			weston_surface_damage(main_view->surface);
> +		}
> +
>  		restore_all_output_modes(shell->compositor);
> +	}
>  
>  	if (shell->focus_animation_type != ANIMATION_NONE) {
>  		ws = get_current_workspace(shell);
> 



More information about the wayland-devel mailing list