diff --git a/ShareX.HistoryLib/ShareX.HistoryLib.csproj b/ShareX.HistoryLib/ShareX.HistoryLib.csproj
index a073d8148..37d2c05a6 100644
--- a/ShareX.HistoryLib/ShareX.HistoryLib.csproj
+++ b/ShareX.HistoryLib/ShareX.HistoryLib.csproj
@@ -270,17 +270,9 @@
-
-
-
-
-
-
-
-
diff --git a/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs b/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs
index 16599945a..7d39d54eb 100644
--- a/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs
+++ b/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs
@@ -1465,7 +1465,16 @@ internal void OnSaveImageRequested()
if (SaveImageRequested != null)
{
Image img = GetResultImage();
- SaveImageRequested(img, ImageFilePath);
+
+ if (Options.AutoCloseEditorOnTask)
+ {
+ Close();
+ TaskEx.Run(() => SaveImageRequested(img, ImageFilePath));
+ }
+ else
+ {
+ SaveImageRequested(img, ImageFilePath);
+ }
}
}
@@ -1474,7 +1483,16 @@ internal void OnSaveImageAsRequested()
if (SaveImageAsRequested != null)
{
Image img = GetResultImage();
- SaveImageAsRequested(img, ImageFilePath);
+
+ if (Options.AutoCloseEditorOnTask)
+ {
+ Close();
+ TaskEx.Run(() => SaveImageAsRequested(img, ImageFilePath));
+ }
+ else
+ {
+ SaveImageAsRequested(img, ImageFilePath);
+ }
}
}
@@ -1483,7 +1501,16 @@ internal void OnCopyImageRequested()
if (CopyImageRequested != null)
{
Image img = GetResultImage();
- CopyImageRequested(img);
+
+ if (Options.AutoCloseEditorOnTask)
+ {
+ Close();
+ TaskEx.Run(() => CopyImageRequested(img));
+ }
+ else
+ {
+ CopyImageRequested(img);
+ }
}
}
@@ -1492,7 +1519,16 @@ internal void OnUploadImageRequested()
if (UploadImageRequested != null)
{
Image img = GetResultImage();
- UploadImageRequested(img);
+
+ if (Options.AutoCloseEditorOnTask)
+ {
+ Close();
+ TaskEx.Run(() => UploadImageRequested(img));
+ }
+ else
+ {
+ UploadImageRequested(img);
+ }
}
}
@@ -1501,7 +1537,16 @@ internal void OnPrintImageRequested()
if (PrintImageRequested != null)
{
Image img = GetResultImage();
- PrintImageRequested(img);
+
+ if (Options.AutoCloseEditorOnTask)
+ {
+ Close();
+ TaskEx.Run(() => PrintImageRequested(img));
+ }
+ else
+ {
+ PrintImageRequested(img);
+ }
}
}
diff --git a/ShareX.ScreenCaptureLib/RegionCaptureOptions.cs b/ShareX.ScreenCaptureLib/RegionCaptureOptions.cs
index f84b0146a..c1befdc62 100644
--- a/ShareX.ScreenCaptureLib/RegionCaptureOptions.cs
+++ b/ShareX.ScreenCaptureLib/RegionCaptureOptions.cs
@@ -81,8 +81,9 @@ public class RegionCaptureOptions
// Image editor
public ImageEditorStartMode ImageEditorStartMode = ImageEditorStartMode.AutoSize;
public WindowState ImageEditorWindowState = new WindowState();
+ public bool AutoCloseEditorOnTask = true;
public Color ImageEditorBackgroundColor = Color.FromArgb(200, 200, 200);
public bool ShowEditorPanTip = true;
- public ImageEditorInterpolationMode ImageEditorInterpolationMode = ImageEditorInterpolationMode.Bicubic;
+ public ImageEditorInterpolationMode ImageEditorResizeInterpolationMode = ImageEditorInterpolationMode.Bicubic;
}
}
\ No newline at end of file
diff --git a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs
index d5a5cbbbb..550112eeb 100644
--- a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs
+++ b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs
@@ -1478,16 +1478,16 @@ private void ChangeImageSize()
{
Size oldSize = Form.Canvas.Size;
- using (ImageSizeForm imageSizeForm = new ImageSizeForm(oldSize, Options.ImageEditorInterpolationMode))
+ using (ImageSizeForm imageSizeForm = new ImageSizeForm(oldSize, Options.ImageEditorResizeInterpolationMode))
{
if (imageSizeForm.ShowDialog(Form) == DialogResult.OK)
{
Size size = imageSizeForm.ImageSize;
- Options.ImageEditorInterpolationMode = imageSizeForm.InterpolationMode;
+ Options.ImageEditorResizeInterpolationMode = imageSizeForm.InterpolationMode;
if (size != oldSize)
{
- InterpolationMode interpolationMode = GetInterpolationMode(Options.ImageEditorInterpolationMode);
+ InterpolationMode interpolationMode = GetInterpolationMode(Options.ImageEditorResizeInterpolationMode);
Image img = ImageHelpers.ResizeImage(Form.Canvas, size, interpolationMode);
if (img != null)
diff --git a/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs b/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs
index a6b68b239..6824c0a4f 100644
--- a/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs
+++ b/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs
@@ -159,10 +159,7 @@ internal void CreateToolbar()
tsbCloseCancel.Image = Resources.cross;
tsbCloseCancel.Click += (sender, e) => Form.Close(RegionResult.AnnotateCancelTask);
tsMain.Items.Add(tsbCloseCancel);
- }
- if (Form.Mode == RegionCaptureMode.TaskEditor)
- {
tsMain.Items.Add(new ToolStripSeparator());
}
@@ -752,6 +749,12 @@ internal void CreateToolbar()
(sender, e) => Options.ImageEditorStartMode = (ImageEditorStartMode)tscbImageEditorStartMode.Content.SelectedIndex;
tsddbOptions.DropDownItems.Add(tscbImageEditorStartMode);
+ ToolStripMenuItem tsmiAutoCloseEditorOnTask = new ToolStripMenuItem("Auto close editor on task");
+ tsmiAutoCloseEditorOnTask.Checked = Options.AutoCloseEditorOnTask;
+ tsmiAutoCloseEditorOnTask.CheckOnClick = true;
+ tsmiAutoCloseEditorOnTask.Click += (sender, e) => Options.AutoCloseEditorOnTask = tsmiAutoCloseEditorOnTask.Checked;
+ tsddbOptions.DropDownItems.Add(tsmiAutoCloseEditorOnTask);
+
tsmiImageEditorBackgroundColor = new ToolStripMenuItem(Resources.ShapeManager_CreateToolbar_EditorBackgroundColor);
tsmiImageEditorBackgroundColor.Click += (sender, e) =>
{