Don't rotate rectangular selection when we're in "subtract mode" and touch editor edges (fix #3976)

As Shift+Alt enables the subtract mode, if we touch an editor edges
and receive a MouseEnter message, we cannot update the selection
modifiers with the pressed Alt key because that will start rotating the
rectangular marquee automatically. We've to start rotating only if we
release the Alt key and then press it again (not by just moving the
mouse).

Recent regression introduced in bd91a6430fdc04c3bc4d35b5d0c11de80c763198
when the ordering of MouseEnter/Move/Leave message order was fixed.
This commit is contained in:
Gaspar Capello 2023-07-21 12:46:23 -03:00 committed by David Capello
parent 392dbd1303
commit a2e3ab44bd

View File

@ -1917,8 +1917,16 @@ bool Editor::onProcessMessage(Message* msg)
case kMouseEnterMessage:
m_brushPreview.hide();
updateToolLoopModifiersIndicators();
updateQuicktool();
// Do not update tool loop modifiers when the mouse exits and/re-enters
// the editor area while we are inside the same tool loop (hasCapture()).
// E.g. This avoids starting to rotate a rectangular marquee (Alt key
// pressed) if we have the subtract mode on (Shift+Alt) and touch the
// editor edge (MouseLeave/Enter)
if (!hasCapture()) {
updateToolLoopModifiersIndicators();
updateQuicktool();
}
break;
case kMouseLeaveMessage: