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

Jonny Lamb jonny.lamb at collabora.co.uk
Tue Aug 12 06:13:30 PDT 2014


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,
-- 
2.1.0.rc1



More information about the wayland-devel mailing list