diff --git a/ShareX.ScreenCaptureLib/Shapes/BaseShape.cs b/ShareX.ScreenCaptureLib/Shapes/BaseShape.cs index 33cc5ff1f..7172261e4 100644 --- a/ShareX.ScreenCaptureLib/Shapes/BaseShape.cs +++ b/ShareX.ScreenCaptureLib/Shapes/BaseShape.cs @@ -140,7 +140,7 @@ public virtual void ShowNodes() Manager.NodesVisible = true; } - public void Remove() + public virtual void Remove() { Manager.DeleteShape(this); } diff --git a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs index 45987632e..175584cc7 100644 --- a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs +++ b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs @@ -68,7 +68,7 @@ public ShapeType CurrentTool { return currentTool; } - private set + set { if (currentTool == value) return; @@ -879,7 +879,7 @@ private void EndRegionSelection() SelectCurrentShape(); - if (Options.SwitchToSelectionToolAfterDrawing) + if (Options.SwitchToSelectionToolAfterDrawing && (shape.ShapeCategory == ShapeCategory.Drawing || shape.ShapeCategory == ShapeCategory.Effect)) { CurrentTool = ShapeType.ToolSelect; } diff --git a/ShareX.ScreenCaptureLib/Shapes/Tool/CropTool.cs b/ShareX.ScreenCaptureLib/Shapes/Tool/CropTool.cs index 5c9ea41eb..3f0be4460 100644 --- a/ShareX.ScreenCaptureLib/Shapes/Tool/CropTool.cs +++ b/ShareX.ScreenCaptureLib/Shapes/Tool/CropTool.cs @@ -111,6 +111,15 @@ private void CancelButton_MousePressed(object sender, MouseEventArgs e) Remove(); } + public override void Remove() + { + base.Remove(); + if (Options.SwitchToSelectionToolAfterDrawing) + { + Manager.CurrentTool = ShapeType.ToolSelect; + } + } + public override void Dispose() { base.Dispose();