compositor: fix re-fading
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>
diff --git a/compositor/compositor.c b/compositor/compositor.c
index 4f25b6d..6ee2298 100644
--- a/compositor/compositor.c
+++ b/compositor/compositor.c
@@ -750,14 +750,15 @@
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);