From c2bdeb61e472ad5c0e255078dbc53a779665ef94 Mon Sep 17 00:00:00 2001 From: Ellen Emilia Anna Zscheile Date: Fri, 25 Apr 2025 20:57:31 +0200 Subject: [PATCH] fix(interactor): reliably, properly stop activity --- src/interactor/interactor.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/interactor/interactor.rs b/src/interactor/interactor.rs index 2ca331a..527915b 100644 --- a/src/interactor/interactor.rs +++ b/src/interactor/interactor.rs @@ -60,7 +60,7 @@ impl Interactor { /// Abort the currently running execution or activity pub fn abort(&mut self) { - if let Some(ref mut activity) = self.activity { + if let Some(ref mut activity) = self.activity.take() { activity.abort(&mut ActivityContext:: { interactive_input: &InteractiveInput { pointer_pos: [0.0, 0.0].into(), @@ -87,7 +87,10 @@ impl Interactor { invoker: &mut self.invoker, }) { Ok(ControlFlow::Continue(())) => ControlFlow::Continue(()), - Ok(ControlFlow::Break(_msg)) => ControlFlow::Break(Ok(())), + Ok(ControlFlow::Break(_msg)) => { + self.activity = None; + ControlFlow::Break(Ok(())) + } Err(err) => { self.activity = None; ControlFlow::Break(Err(err))