From a5de8920fba653ffc66919e9c2b46933a510e12a Mon Sep 17 00:00:00 2001 From: Lawrence Lee <45837045+Lawrence37@users.noreply.github.com> Date: Sat, 22 May 2021 17:51:54 -0700 Subject: [PATCH] Fix crash when resetting spot removal with drag Do not attempt to update non-existent spots immediately after resetting the spot removal tool. --- rtgui/spot.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/rtgui/spot.cc b/rtgui/spot.cc index 7facb8f93..9911a9595 100644 --- a/rtgui/spot.cc +++ b/rtgui/spot.cc @@ -172,6 +172,7 @@ void Spot::resetPressed() } } else { if (!spots.empty()) { + EditSubscriber::action = EditSubscriber::Action::NONE; spots.clear(); activeSpot = -1; lastObject = -1; @@ -657,6 +658,10 @@ bool Spot::button3Released() bool Spot::drag1 (int modifierKey) { + if (EditSubscriber::action != EditSubscriber::Action::DRAGGING) { + return false; + } + EditDataProvider *editProvider = getEditProvider(); int imW, imH; editProvider->getImageSize (imW, imH); @@ -738,6 +743,10 @@ bool Spot::drag1 (int modifierKey) bool Spot::drag3 (int modifierKey) { + if (EditSubscriber::action != EditSubscriber::Action::DRAGGING) { + return false; + } + EditDataProvider *editProvider = getEditProvider(); int imW, imH; editProvider->getImageSize (imW, imH);