From 6c90f517e492e711dfe7d15e78f56f46f30cfe02 Mon Sep 17 00:00:00 2001 From: WarmUpTill <19472752+WarmUpTill@users.noreply.github.com> Date: Sat, 13 Jun 2026 23:21:31 +0200 Subject: [PATCH] Fix freeze when stopping waiting macro via "Run macro" button --- lib/macro/macro-run-button.cpp | 2 +- lib/macro/macro.cpp | 6 ++++++ lib/macro/macro.hpp | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/macro/macro-run-button.cpp b/lib/macro/macro-run-button.cpp index cc458f56..5f0e96b5 100644 --- a/lib/macro/macro-run-button.cpp +++ b/lib/macro/macro-run-button.cpp @@ -108,7 +108,7 @@ void MacroRunButton::Pressed() const bool abortMacro = DisplayMessage( err.arg(QString::fromStdString(macro->Name())), true); if (abortMacro) { - macro->Stop(); + macro->SignalStop(); } } diff --git a/lib/macro/macro.cpp b/lib/macro/macro.cpp index c0000880..60879737 100644 --- a/lib/macro/macro.cpp +++ b/lib/macro/macro.cpp @@ -552,6 +552,12 @@ Macro::PauseStateSaveBehavior Macro::GetPauseStateSaveBehavior() const return _pauseSaveBehavior; } +void Macro::SignalStop() +{ + _stop = true; + GetMacroWaitCV().notify_all(); +} + void Macro::Stop() { _stop = true; diff --git a/lib/macro/macro.hpp b/lib/macro/macro.hpp index 1a8800db..aecf8efc 100644 --- a/lib/macro/macro.hpp +++ b/lib/macro/macro.hpp @@ -61,7 +61,7 @@ public: PauseStateSaveBehavior GetPauseStateSaveBehavior() const; void Stop(); - void SignalStop() { _stop = true; } + void SignalStop(); bool GetStop() const { return _stop; } void ResetTimers();