diff --git a/Flow.Launcher.Core/ProgressBoxEx.xaml.cs b/Flow.Launcher.Core/ProgressBoxEx.xaml.cs
index 9a32f7303..f5d34617b 100644
--- a/Flow.Launcher.Core/ProgressBoxEx.xaml.cs
+++ b/Flow.Launcher.Core/ProgressBoxEx.xaml.cs
@@ -66,11 +66,16 @@ namespace Flow.Launcher.Core
private new void Close()
{
+ if (!Application.Current.Dispatcher.CheckAccess())
+ {
+ Application.Current.Dispatcher.Invoke(Close);
+ }
+
if (_isClosed)
{
return;
}
-
+
base.Close();
_isClosed = true;
}
diff --git a/Flow.Launcher.Plugin/IProgressBoxEx.cs b/Flow.Launcher.Plugin/IProgressBoxEx.cs
index 6468e3c83..27b061895 100644
--- a/Flow.Launcher.Plugin/IProgressBoxEx.cs
+++ b/Flow.Launcher.Plugin/IProgressBoxEx.cs
@@ -6,7 +6,7 @@
public interface IProgressBoxEx
{
///
- /// Show progress box. It should be called from the main ui thread.
+ /// Show progress box.
///
///
/// Progress value. Should be between 0 and 100. When progress is 100, the progress box will be closed.
@@ -14,7 +14,7 @@ public interface IProgressBoxEx
public void ReportProgress(double progress);
///
- /// Close progress box. It should be called from the main ui thread.
+ /// Close progress box.
///
public void Close();
}
diff --git a/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs b/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs
index 2923f7eef..0af2af5ec 100644
--- a/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs
+++ b/Plugins/Flow.Launcher.Plugin.PluginsManager/PluginsManager.cs
@@ -196,7 +196,7 @@ namespace Flow.Launcher.Plugin.PluginsManager
if (downloadCancelled)
return;
else
- CleanupProgressBoxEx(prgBox);
+ prgBox?.Close();
}
else
{
@@ -217,7 +217,7 @@ namespace Flow.Launcher.Plugin.PluginsManager
catch (HttpRequestException e)
{
// force close progress box
- CleanupProgressBoxEx(prgBox);
+ prgBox?.Close();
// show error message
Context.API.ShowMsgError(
@@ -230,7 +230,7 @@ namespace Flow.Launcher.Plugin.PluginsManager
catch (Exception e)
{
// force close progress box
- CleanupProgressBoxEx(prgBox);
+ prgBox?.Close();
// show error message
Context.API.ShowMsgError(Context.API.GetTranslation("plugin_pluginsmanager_install_error_title"),
@@ -256,14 +256,6 @@ namespace Flow.Launcher.Plugin.PluginsManager
}
}
- private static void CleanupProgressBoxEx(IProgressBoxEx prgBox)
- {
- Application.Current.Dispatcher.Invoke(() =>
- {
- prgBox?.Close();
- });
- }
-
internal async ValueTask> RequestUpdateAsync(string search, CancellationToken token,
bool usePrimaryUrlOnly = false)
{