diff --git a/ShareX.HelpersLib/Extensions/Extensions.cs b/ShareX.HelpersLib/Extensions/Extensions.cs index 10af0a847..55b7f49bc 100644 --- a/ShareX.HelpersLib/Extensions/Extensions.cs +++ b/ShareX.HelpersLib/Extensions/Extensions.cs @@ -359,18 +359,21 @@ public static void InvokeSafe(this Control control, Action action) public static void ForceActivate(this Form form) { - if (!form.Visible) + if (!form.IsDisposed) { - form.Show(); - } + if (!form.Visible) + { + form.Show(); + } - if (form.WindowState == FormWindowState.Minimized) - { - form.WindowState = FormWindowState.Normal; - } + if (form.WindowState == FormWindowState.Minimized) + { + form.WindowState = FormWindowState.Normal; + } - form.BringToFront(); - form.Activate(); + form.BringToFront(); + form.Activate(); + } } public static int WeekOfYear(this DateTime dateTime) diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs index 13265e723..01a873cc0 100644 --- a/ShareX/Forms/MainForm.cs +++ b/ShareX/Forms/MainForm.cs @@ -1470,7 +1470,7 @@ private void tsmiTextCapture_Click(object sender, EventArgs e) try { - TaskHelpers.OCRImage().RunSynchronously(); + _ = TaskHelpers.OCRImage(); } catch (Exception ex) { @@ -1842,9 +1842,16 @@ private void tsmiTrayLastRegion_Click(object sender, EventArgs e) new CaptureLastRegion().Capture(); } - private void tsmiTrayTextCapture_Click(object sender, EventArgs e) + private async void tsmiTrayTextCapture_Click(object sender, EventArgs e) { - TaskHelpers.OCRImage().RunSynchronously(); + try + { + await TaskHelpers.OCRImage(); + } + catch (Exception ex) + { + DebugHelper.WriteException(ex); + } } private void tsmiTrayToggleHotkeys_Click(object sender, EventArgs e) @@ -2094,9 +2101,9 @@ private void tsmiShowQRCode_Click(object sender, EventArgs e) uim.ShowQRCode(); } - private void tsmiOCRImage_Click(object sender, EventArgs e) + private async void tsmiOCRImage_Click(object sender, EventArgs e) { - uim.OCRImage(); + await uim.OCRImage(); } private void tsmiCombineImages_Click(object sender, EventArgs e) diff --git a/ShareX/TaskHelpers.cs b/ShareX/TaskHelpers.cs index 099e9c7ee..391a5455b 100644 --- a/ShareX/TaskHelpers.cs +++ b/ShareX/TaskHelpers.cs @@ -134,7 +134,7 @@ public static void ExecuteJob(TaskSettings taskSettings, HotkeyType job, CLIComm OpenWebpageCapture(safeTaskSettings); break; case HotkeyType.TextCapture: - OCRImage(safeTaskSettings).RunSynchronously(); + _ = OCRImage(safeTaskSettings); break; case HotkeyType.AutoCapture: OpenAutoCapture(safeTaskSettings); @@ -1144,7 +1144,7 @@ public static async Task OCRImage(string filePath, TaskSettings taskSettings = n } } - public static async Task OCRImage(Stream stream, string fileName, string filePath = null, TaskSettings taskSettings = null) + private static async Task OCRImage(Stream stream, string fileName, string filePath = null, TaskSettings taskSettings = null) { if (stream != null) { diff --git a/ShareX/UploadInfoManager.cs b/ShareX/UploadInfoManager.cs index 7c2991d91..fd2177ce6 100644 --- a/ShareX/UploadInfoManager.cs +++ b/ShareX/UploadInfoManager.cs @@ -30,6 +30,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using System.Threading.Tasks; using System.Windows.Forms; namespace ShareX @@ -362,9 +363,9 @@ public void ShowQRCode() if (IsItemSelected && SelectedItem.IsURLExist) new QRCodeForm(SelectedItem.Info.Result.URL).Show(); } - public void OCRImage() + public async Task OCRImage() { - if (IsItemSelected && SelectedItem.IsImageFile) TaskHelpers.OCRImage(SelectedItem.Info.FilePath).RunSynchronously(); + if (IsItemSelected && SelectedItem.IsImageFile) await TaskHelpers.OCRImage(SelectedItem.Info.FilePath); } public void CombineImages() diff --git a/ShareX/WorkerTask.cs b/ShareX/WorkerTask.cs index ccde013ae..51b7b1ed1 100644 --- a/ShareX/WorkerTask.cs +++ b/ShareX/WorkerTask.cs @@ -1007,9 +1007,9 @@ private bool DownloadFromURL(bool upload) private void DoOCR() { - if (Data != null && Info.DataType == EDataType.Image) + if (Image != null && Info.DataType == EDataType.Image) { - TaskHelpers.OCRImage(Data, Info.FileName, Info.FilePath, Info.TaskSettings).RunSynchronously(); + _ = TaskHelpers.OCRImage(Image, Info.TaskSettings); } }