diff --git a/core/embed/rust/src/ui/flow/swipe.rs b/core/embed/rust/src/ui/flow/swipe.rs index 252e07a04d..7470e5e742 100644 --- a/core/embed/rust/src/ui/flow/swipe.rs +++ b/core/embed/rust/src/ui/flow/swipe.rs @@ -55,16 +55,21 @@ impl SwipeFlow { } fn goto(&mut self, ctx: &mut EventCtx, direction: SwipeDirection, state: Q) { - if state == self.state { - self.transition = Transition::Internal; - return; - } if util::animation_disabled() { + if state == self.state { + assert!(self + .store + .map_swipable(state.index(), |s| s.swipe_finished())); + } self.state = state; self.store.event(state.index(), ctx, Event::Attach); ctx.request_paint(); return; } + if state == self.state { + self.transition = Transition::Internal; + return; + } self.transition = Transition::External { prev_state: self.state, animation: Animation::new(0.0f32, 1.0f32, util::SLIDE_DURATION_MS, Instant::now()),