Fix control line edit crash when undoing history

When perspective control line editing is active and the history entry is
changed such that edit mode is automatically disabled, there is a crash.
The history change triggers a processing parameters update and disables
editing. When editing is disabled, the perspective tool also tries to
update the processing parameters, causing a double mutex lock attempt.

This commit avoids updating parameters from the perspective tool and
uses the tweak operator (introduced with the spot removal tool) to achieve
the same effect.

Closes #6251.
This commit is contained in:
Lawrence Lee
2021-05-22 15:50:35 -07:00
parent 99f2a87819
commit 36f1300a6b
5 changed files with 14 additions and 16 deletions

View File

@@ -24,6 +24,7 @@
#include "controllines.h"
#include "lensgeomlistener.h"
#include "toolpanel.h"
#include "../rtengine/tweakoperator.h"
class PerspCorrectionPanelListener
{
@@ -34,6 +35,7 @@ public:
};
class PerspCorrection final :
public rtengine::TweakOperator,
public ToolParamBlock,
public AdjusterListener,
public FoldableToolPanel
@@ -91,6 +93,7 @@ protected:
const rtengine::FramesMetaData* metadata;
void applyControlLines (void);
void tweakParams(rtengine::procparams::ProcParams &pparams) override;
void setCamBasedEventsActive (bool active = true);
void setFocalLengthValue (const rtengine::procparams::ProcParams* pparams, const rtengine::FramesMetaData* metadata);