spring: Tweak the window fade-in spring to not overshoot
The fade animation overshoots and rings for a bit dipping back into
slightly transparent. Bug 61675 was right.
https://bugs.freedesktop.org/show_bug.cgi?id=61675
diff --git a/src/animation.c b/src/animation.c
index b8de574..782df24 100644
--- a/src/animation.c
+++ b/src/animation.c
@@ -265,16 +265,19 @@
fade_frame, done, data);
weston_spring_init(&fade->spring, k, start, end);
+
+ fade->spring.friction = 1400;
+ fade->spring.previous = -(end - start) * 0.03;
+
surface->alpha = start;
return fade;
}
WL_EXPORT void
-weston_fade_update(struct weston_surface_animation *fade,
- float start, float end, float k)
+weston_fade_update(struct weston_surface_animation *fade, float target)
{
- weston_spring_init(&fade->spring, k, start, end);
+ fade->spring.target = target;
}
static void