diff --git a/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs b/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs index 4053dc0b0..6a46dcf7f 100644 --- a/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs +++ b/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs @@ -58,7 +58,7 @@ public sealed class RegionCaptureForm : Form public RegionCaptureMode Mode { get; private set; } public bool IsEditorMode => Mode == RegionCaptureMode.Editor || Mode == RegionCaptureMode.TaskEditor; public bool IsAnnotationMode => Mode == RegionCaptureMode.Annotation || IsEditorMode; - public bool IsAnnotated => ShapeManager != null && ShapeManager.IsAnnotated; + public bool IsModified => ShapeManager != null && ShapeManager.IsModified; public Point CurrentPosition { get; private set; } public Point PanningStrech = new Point(); @@ -509,7 +509,7 @@ internal bool ShowExitConfirmation() { bool result = true; - if (ShapeManager != null && ShapeManager.IsAnnotated) + if (ShapeManager != null && ShapeManager.IsModified) { Pause(); result = MessageBox.Show(this, Resources.RegionCaptureForm_ShowExitConfirmation_Text, Resources.RegionCaptureForm_ShowExitConfirmation_ShareXImageEditor, @@ -1341,6 +1341,8 @@ internal void OnSaveImageRequested() { Image img = GetResultImage(); + ShapeManager.IsModified = false; + if (Options.AutoCloseEditorOnTask) { CloseWindow(); @@ -1359,6 +1361,8 @@ internal void OnSaveImageAsRequested() { Image img = GetResultImage(); + ShapeManager.IsModified = false; + if (Options.AutoCloseEditorOnTask) { CloseWindow(); diff --git a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs index 71f0b8ec9..c7e4e0a94 100644 --- a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs +++ b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs @@ -166,9 +166,19 @@ private set public bool IsSnapResizing { get; private set; } public bool IsRenderingOutput { get; private set; } - private bool isAnnotated; + private bool isModified; - public bool IsAnnotated => isAnnotated || DrawingShapes.Where(x => x.ShapeType != ShapeType.DrawingCursor).Count() > 0 || EffectShapes.Length > 0; + public bool IsModified + { + get + { + return isModified || DrawingShapes.Any(x => x.ShapeType != ShapeType.DrawingCursor) || EffectShapes.Length > 0; + } + internal set + { + isModified = value; + } + } public InputManager InputManager { get; private set; } = new InputManager(); public List Windows { get; set; } @@ -1544,7 +1554,7 @@ public void UpdateCanvas(Image img, bool centerCanvas = true) effect.OnMoved(); } - isAnnotated = true; + IsModified = true; } public void CropArea(Rectangle rect) diff --git a/ShareX/CaptureHelpers/CaptureRegion.cs b/ShareX/CaptureHelpers/CaptureRegion.cs index 84070706a..5069f3971 100644 --- a/ShareX/CaptureHelpers/CaptureRegion.cs +++ b/ShareX/CaptureHelpers/CaptureRegion.cs @@ -99,7 +99,7 @@ protected ImageInfo ExecuteRegionCapture(TaskSettings taskSettings) if (imageInfo.Image != null) { - if (form.IsAnnotated) + if (form.IsModified) { AllowAnnotation = false; }