compositor: fix re-fading
authorPekka Paalanen <ppaalanen@gmail.com>
Fri, 2 Dec 2011 08:39:49 +0000 (10:39 +0200)
committerPekka Paalanen <ppaalanen@gmail.com>
Wed, 14 Dec 2011 11:43:42 +0000 (13:43 +0200)
Reorder code in fade_frame() to that if shell->lock() calls
wlsc_compositor_wake(), the fade animation will run again.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
compositor/compositor.c

index 4f25b6d..6ee2298 100644 (file)
@@ -750,14 +750,15 @@ fade_frame(struct wlsc_animation *animation,
 
        wlsc_spring_update(&compositor->fade.spring, msecs);
        if (wlsc_spring_done(&compositor->fade.spring)) {
-               if (compositor->fade.spring.current > 0.999) {
-                       compositor->state = WLSC_COMPOSITOR_SLEEPING;
-                       compositor->shell->lock(compositor->shell);
-               }
                compositor->fade.spring.current =
                        compositor->fade.spring.target;
                wl_list_remove(&animation->link);
                wl_list_init(&animation->link);
+
+               if (compositor->fade.spring.current > 0.999) {
+                       compositor->state = WLSC_COMPOSITOR_SLEEPING;
+                       compositor->shell->lock(compositor->shell);
+               }
        }
 
        wlsc_output_damage(output);