From 3b413d011063b5d3a3b7ae1ca322f75cb70d73aa Mon Sep 17 00:00:00 2001 From: Daniel Kuschny Date: Sat, 13 Apr 2019 14:21:48 +0200 Subject: [PATCH] Limit auto select tool selection to drawing tools and added special logic to switch back after crop tool completion --- ShareX.ScreenCaptureLib/Shapes/BaseShape.cs | 2 +- ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs | 4 ++-- ShareX.ScreenCaptureLib/Shapes/Tool/CropTool.cs | 9 +++++++++ 3 files changed, 12 insertions(+), 3 deletions(-) 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();