desktop-shell: add close-animation config option for destroying surfaces
authorJonny Lamb <jonny.lamb@collabora.co.uk>
Tue, 12 Aug 2014 13:13:30 +0000 (15:13 +0200)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Mon, 18 Aug 2014 10:27:11 +0000 (13:27 +0300)
At the moment when surfaces are destroyed they are faded out but let's
make it configurable!

Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
desktop-shell/shell.c
desktop-shell/shell.h
man/weston.ini.man

index 7370972..d756076 100644 (file)
@@ -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
index 6e63785..e994cdb 100644 (file)
@@ -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;
 
index 22f9f0d..fbcec81 100644 (file)
@@ -201,6 +201,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,