Fix drag position after alternate button press

When a button is released and the edit state is not "dragging", reset
the drag delta to zero.

There was a problem with the spot removal spots being dragged. If a spot
is deleted while being dragged, dragging another spot will cause a jump.
This commit is contained in:
Lawrence Lee
2021-06-12 11:37:38 -07:00
parent d02ed52e00
commit a2c5fd0f91
2 changed files with 8 additions and 0 deletions

View File

@@ -794,6 +794,13 @@ void CropWindow::buttonRelease (int button, int num, int bstate, int x, int y)
iarea->setToolHand ();
}
if (state != SEditDrag1 && state != SEditDrag2 && state != SEditDrag3) {
iarea->deltaImage.set(0, 0);
iarea->deltaScreen.set(0, 0);
iarea->deltaPrevImage.set(0, 0);
iarea->deltaPrevScreen.set(0, 0);
}
if (cropgl && (state == SCropSelecting || state == SResizeH1 || state == SResizeH2 || state == SResizeW1 || state == SResizeW2 || state == SResizeTL || state == SResizeTR || state == SResizeBL || state == SResizeBR || state == SCropMove)) {
cropgl->cropManipReady ();
iarea->setToolHand ();

View File

@@ -667,6 +667,7 @@ bool Spot::button3Pressed (int modifierKey)
return true;
} else if (! (modifierKey & (GDK_SHIFT_MASK | GDK_SHIFT_MASK))) {
EditSubscriber::action = EditSubscriber::Action::PICKING;
return true;
}
return false;