diff --git a/src/transcript/transcript-drawing-area.vala b/src/transcript/transcript-drawing-area.vala index 883de0a..e100d27 100644 --- a/src/transcript/transcript-drawing-area.vala +++ b/src/transcript/transcript-drawing-area.vala @@ -273,6 +273,9 @@ private class ChatItemAnimation private double duration = 0.0; private Gdk.FrameClock frame_clock = null; + delegate double EaseFunction(double t); + private EaseFunction ease_function = ease_out_quart; + public ChatItemAnimation(Gdk.FrameClock frame_clock) { this.frame_clock = frame_clock; progress = 0.0f; @@ -285,7 +288,9 @@ private class ChatItemAnimation } public void tick_animation() { - progress = ease_out_quart((frame_clock.get_frame_time() - start_time) / (duration * 1000000.0)); + double t = (frame_clock.get_frame_time() - start_time) / (duration * 1000000.0); + t = double.min(1.0, double.max(0.0, t)); + progress = ease_function(t); } private static double ease_out_quart(double t) {