diff --git a/OpenNest/Controls/PlateView.cs b/OpenNest/Controls/PlateView.cs index edaec13..b8de140 100644 --- a/OpenNest/Controls/PlateView.cs +++ b/OpenNest/Controls/PlateView.cs @@ -26,6 +26,7 @@ namespace OpenNest.Controls private Plate plate; private Action currentAction; private List parts; + private Point middleMouseDownPoint; public List SelectedParts; public ReadOnlyCollection Parts; @@ -166,6 +167,31 @@ namespace OpenNest.Controls AddPartFromDrawing(dwg, pt2); } + protected override void OnMouseDown(MouseEventArgs e) + { + if (e.Button == MouseButtons.Middle) + middleMouseDownPoint = e.Location; + + base.OnMouseDown(e); + } + + protected override void OnMouseUp(MouseEventArgs e) + { + if (e.Button == MouseButtons.Middle && SelectedParts.Count > 0) + { + var dx = e.X - middleMouseDownPoint.X; + var dy = e.Y - middleMouseDownPoint.Y; + + if (dx * dx + dy * dy < 25) + { + RotateSelectedParts(Angle.ToRadians(90)); + Invalidate(); + } + } + + base.OnMouseUp(e); + } + protected override void OnMouseWheel(MouseEventArgs e) { base.OnMouseWheel(e);