stop triple on interrupted

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-07-03 12:06:18 +08:00
parent 2a7112662f
commit f73fb0904a
2 changed files with 7 additions and 1 deletions

View File

@@ -84,6 +84,8 @@ mixin TripleMixin on GetxController, TickerProvider {
_timer = null; _timer = null;
} }
bool get isTripling => _tripleAnimCtr?.status == .forward;
static final _duration = PlatformUtils.isMobile static final _duration = PlatformUtils.isMobile
? const Duration(milliseconds: 200) ? const Duration(milliseconds: 200)
: const Duration(milliseconds: 255); : const Duration(milliseconds: 255);
@@ -104,7 +106,7 @@ mixin TripleMixin on GetxController, TickerProvider {
} }
void onCancelTriple([bool isTapUp = false]) { void onCancelTriple([bool isTapUp = false]) {
if (tripleAnimCtr.status == AnimationStatus.forward) { if (tripleAnimCtr.status == .forward) {
tripleAnimCtr.reverse(); tripleAnimCtr.reverse();
} else if (_timer != null && _timer!.tick == 0) { } else if (_timer != null && _timer!.tick == 0) {
_cancelTimer(); _cancelTimer();

View File

@@ -107,6 +107,10 @@ class PlayerFocus extends StatelessWidget {
introController!.onCancelTriple(isKeyQ); introController!.onCancelTriple(isKeyQ);
} }
return true; return true;
} else if (event is KeyDownEvent) {
if (introController?.isTripling ?? false) {
introController!.onCancelTriple();
}
} }
final isArrowUp = key == LogicalKeyboardKey.arrowUp; final isArrowUp = key == LogicalKeyboardKey.arrowUp;