Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorVsevolod Kukol <sevoku@microsoft.com>2019-08-15 13:14:47 +0300
committerGitHub <noreply@github.com>2019-08-15 13:14:47 +0300
commitfc9b1657dce30c6bf2046fcd37e14ace4a0333a8 (patch)
tree8b4ed90cb3b06cb406ffe1e041662b8c520c7f88 /main
parentbc6cf1418946bfde9059702075970b782c1564b7 (diff)
parentec2673d37d841fa0a2c1ebacccdc3eb3fa7ae574 (diff)
Merge pull request #8339 from mono/backport-pr-8338-to-release-8.2
[release-8.2] [Ide] Run all WelcomePageService operations on main UI thread
Diffstat (limited to 'main')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.WelcomePage/WelcomePageService.cs29
1 files changed, 17 insertions, 12 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.WelcomePage/WelcomePageService.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.WelcomePage/WelcomePageService.cs
index dd003cab69..7d59ecb6e6 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.WelcomePage/WelcomePageService.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.WelcomePage/WelcomePageService.cs
@@ -110,23 +110,26 @@ namespace MonoDevelop.Ide.WelcomePage
// Try to get a dialog version of the "welcome screen" first
if (!await ShowWelcomeWindow (options)) {
- ShowWelcomePage (true);
+ await Runtime.RunInMainThread (() => ShowWelcomePage (true));
}
}
public static async void HideWelcomePageOrWindow ()
{
- if (WelcomeWindowProvider != null) {
- await WelcomeWindowProvider.HideWindow ();
- WelcomeWindowHidden?.Invoke (WelcomeWindow, EventArgs.Empty);
- } else {
- HideWelcomePage (true);
- }
- visible = false;
+ await Runtime.RunInMainThread (async () => {
+ if (WelcomeWindowProvider != null) {
+ await WelcomeWindowProvider.HideWindow ();
+ visible = false;
+ WelcomeWindowHidden?.Invoke (WelcomeWindow, EventArgs.Empty);
+ } else {
+ HideWelcomePage (true);
+ }
+ });
}
public static void ShowWelcomePage (bool animate = false)
{
+ Runtime.AssertMainThread ();
if (!visible) {
visible = true;
if (welcomePage == null) {
@@ -150,6 +153,7 @@ namespace MonoDevelop.Ide.WelcomePage
public static void HideWelcomePage (bool animate = false)
{
+ Runtime.AssertMainThread ();
if (visible) {
visible = false;
((DefaultWorkbench)IdeApp.Workbench.RootWindow).BottomBar.Show ();
@@ -164,10 +168,11 @@ namespace MonoDevelop.Ide.WelcomePage
return false;
}
- await WelcomeWindowProvider.ShowWindow (options);
- visible = true;
-
- WelcomeWindowShown?.Invoke (WelcomeWindow, EventArgs.Empty);
+ await Runtime.RunInMainThread (async () => {
+ await WelcomeWindowProvider.ShowWindow (options);
+ visible = true;
+ WelcomeWindowShown?.Invoke (WelcomeWindow, EventArgs.Empty);
+ });
return true;
}