|
@@ -294,6 +294,7 @@ internal class TransformOverlay : Overlay
|
|
|
private bool actuallyMoved = false;
|
|
|
private bool isShearing = false;
|
|
|
private int lastClickCount = 0;
|
|
|
+ private bool pressedWithinBounds = false;
|
|
|
|
|
|
public TransformOverlay()
|
|
|
{
|
|
@@ -555,6 +556,8 @@ internal class TransformOverlay : Overlay
|
|
|
|
|
|
if (Handles.Any(x => x.IsWithinHandle(x.Position, args.Point, ZoomScale))) return;
|
|
|
|
|
|
+ pressedWithinBounds = TestHit(args.Point);
|
|
|
+
|
|
|
if (CanShear(args.Point, out var side))
|
|
|
{
|
|
|
StartShearing(args, side);
|
|
@@ -651,9 +654,12 @@ internal class TransformOverlay : Overlay
|
|
|
protected override void OnOverlayPointerReleased(OverlayPointerArgs e)
|
|
|
{
|
|
|
if (e.InitialPressMouseButton != MouseButton.Left)
|
|
|
+ {
|
|
|
+ pressedWithinBounds = false;
|
|
|
return;
|
|
|
+ }
|
|
|
|
|
|
- if (!isRotating && !actuallyMoved)
|
|
|
+ if (!isRotating && !actuallyMoved && pressedWithinBounds)
|
|
|
{
|
|
|
MouseOnCanvasEventArgs args = new(MouseButton.Left, e.Point, e.Modifiers, lastClickCount);
|
|
|
PassthroughPointerPressedCommand?.Execute(args);
|
|
@@ -682,6 +688,7 @@ internal class TransformOverlay : Overlay
|
|
|
StopMoving();
|
|
|
IsSizeBoxEnabled = false;
|
|
|
capturedAnchor = null;
|
|
|
+ pressedWithinBounds = false;
|
|
|
}
|
|
|
|
|
|
public override bool TestHit(VecD point)
|