From 951a4251f2824ab9b306c04fffafbe4913c7c569 Mon Sep 17 00:00:00 2001
From: Maxwell Talbot <talbot.maxwell@gmail.com>
Date: Wed, 30 Sep 2020 09:42:17 +0100
Subject: [PATCH] stop the stopwatch if we are no longer advancing the
 animations, so they do not jump to an unintended timepoint when restarted

---
 lib/src/rive_render_box.dart | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/src/rive_render_box.dart b/lib/src/rive_render_box.dart
index 851240a..4a4e0d2 100644
--- a/lib/src/rive_render_box.dart
+++ b/lib/src/rive_render_box.dart
@@ -92,6 +92,7 @@ abstract class RiveRenderBox extends RenderBox {
   void _frameCallback(Duration duration) {
     _elapsedSeconds = _stopwatch.elapsedTicks / _stopwatch.frequency;
     _stopwatch.reset();
+    _stopwatch.start();
     markNeedsPaint();
   }
 
@@ -109,6 +110,8 @@ abstract class RiveRenderBox extends RenderBox {
     _frameCallbackId = null;
     if (advance(_elapsedSeconds)) {
       scheduleRepaint();
+    } else {
+      _stopwatch.stop();
     }
     _elapsedSeconds = 0;