[PATCH weston] desktop-shell: add close-animation config option for destroying surfaces

Pekka Paalanen ppaalanen at gmail.com
Mon Aug 18 03:28:55 PDT 2014


On Tue, 12 Aug 2014 15:13:30 +0200
Jonny Lamb <jonny.lamb at collabora.co.uk> wrote:

> At the moment when surfaces are destroyed they are faded out but let's
> make it configurable!
> ---
>  desktop-shell/shell.c | 11 +++++++++--
>  desktop-shell/shell.h |  1 +
>  man/weston.ini.man    |  6 ++++++
>  3 files changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
> index 7370972..d756076 100644
> --- a/desktop-shell/shell.c
> +++ b/desktop-shell/shell.c
> @@ -535,6 +535,9 @@ shell_configuration(struct desktop_shell *shell)
>  	weston_config_section_get_string(section, "animation", &s, "none");
>  	shell->win_animation_type = get_animation_type(s);
>  	free(s);
> +	weston_config_section_get_string(section, "close-animation", &s, "fade");
> +	shell->win_close_animation_type = get_animation_type(s);
> +	free(s);
>  	weston_config_section_get_string(section,
>  					 "startup-animation", &s, "fade");
>  	shell->startup_animation_type = get_animation_type(s);
> @@ -3220,8 +3223,12 @@ handle_resource_destroy(struct wl_listener *listener, void *data)
>  	pixman_region32_init(&shsurf->surface->pending.input);
>  	pixman_region32_fini(&shsurf->surface->input);
>  	pixman_region32_init(&shsurf->surface->input);
> -	weston_fade_run(shsurf->view, 1.0, 0.0, 300.0,
> -			fade_out_done, shsurf);
> +	if (shsurf->shell->win_close_animation_type == ANIMATION_FADE) {
> +		weston_fade_run(shsurf->view, 1.0, 0.0, 300.0,
> +				fade_out_done, shsurf);
> +	} else {
> +		weston_surface_destroy(shsurf->surface);
> +	}
>  }
>  
>  static void
> diff --git a/desktop-shell/shell.h b/desktop-shell/shell.h
> index 6e63785..e994cdb 100644
> --- a/desktop-shell/shell.h
> +++ b/desktop-shell/shell.h
> @@ -194,6 +194,7 @@ struct desktop_shell {
>  	uint32_t binding_modifier;
>  	uint32_t exposay_modifier;
>  	enum animation_type win_animation_type;
> +	enum animation_type win_close_animation_type;
>  	enum animation_type startup_animation_type;
>  	enum animation_type focus_animation_type;
>  
> diff --git a/man/weston.ini.man b/man/weston.ini.man
> index 667f70a..40c5288 100644
> --- a/man/weston.ini.man
> +++ b/man/weston.ini.man
> @@ -196,6 +196,12 @@ sets the effect used for opening new windows (string). Can be
>  .B none.
>  By default, no animation is used.
>  .TP 7
> +.BI "close-animation=" fade
> +sets the effect used when closing windows (string). Can be
> +.B fade,
> +.B none.
> +By default, the fade animation is used.
> +.TP 7
>  .BI "startup-animation=" fade
>  sets the effect used for opening new windows (string). Can be
>  .B fade,


Pushed!

Thanks,
pq


More information about the wayland-devel mailing list