diff options
author | Vsevolod Kukol <sevoku@microsoft.com> | 2019-10-30 02:18:48 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-30 02:18:48 +0300 |
commit | 8e44d11cd9fcd97fab1516d3583f96c893faf651 (patch) | |
tree | 6d4a4a896e11d9c54f11e268af31ee6496e7aa9d /main | |
parent | c06ff7293674f919dae30ad44a0b6b4aac3ced14 (diff) | |
parent | 6cef3c2aa354de010411e0461e77e12f68ef9994 (diff) |
Merge pull request #8782 from mono/fix-935546
Fixes current alignment centering Extension and children to parent
Diffstat (limited to 'main')
m--------- | main/external/mono-addins | 0 | ||||
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Updater/AddinsUpdateHandler.cs | 33 |
2 files changed, 30 insertions, 3 deletions
diff --git a/main/external/mono-addins b/main/external/mono-addins -Subproject 09ac97652bef24b2e043bc8fda7a024cf4dc7a4 +Subproject 124fd2d88fdabf54c378bdf5041584f9e06b681 diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Updater/AddinsUpdateHandler.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Updater/AddinsUpdateHandler.cs index 826fcc0a25..7955d219a7 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Updater/AddinsUpdateHandler.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Updater/AddinsUpdateHandler.cs @@ -98,7 +98,35 @@ namespace MonoDevelop.Ide.Updater { if (args.Button == Xwt.PointerButton.Left) { HideAlert (); - AddinManagerWindow.Run (IdeApp.Workbench.RootWindow.Visible ? IdeApp.Workbench.RootWindow : null); + OpenAddinManagerWindow (); + } + } + + static void OpenAddinManagerWindow () + { + if (!IdeApp.Workbench.RootWindow.Visible && WelcomePage.WelcomePageService.WelcomeWindow.nativeWidget is AppKit.NSWindow parentNsWindow) { + var dlg = AddinManagerWindow.Create (); + + EventHandler shownEvent = null; + shownEvent = (s, e) => { + dlg.Shown -= shownEvent; + try { + var nativeWindow = Components.Mac.GtkMacInterop.GetNSWindow (dlg); + MessageService.CenterWindow (nativeWindow, parentNsWindow); + parentNsWindow.AddChildWindow (nativeWindow, AppKit.NSWindowOrderingMode.Above); + } catch (Exception ex) { + LoggingService.LogInternalError (ex); + } + }; + + dlg.Shown += shownEvent; + try { + dlg.Run (); + } finally { + dlg.Destroy (); + } + } else { + AddinManagerWindow.Run (IdeApp.Workbench.RootWindow); } } @@ -112,8 +140,7 @@ namespace MonoDevelop.Ide.Updater await t; } HideAlert (); - - AddinManagerWindow.Run (IdeApp.Workbench.RootWindow.Visible ? IdeApp.Workbench.RootWindow : null); + OpenAddinManagerWindow (); } public static void HideAlert () |