diff options
author | Jose Medrano <josmed@microsoft.com> | 2022-03-29 20:40:18 +0300 |
---|---|---|
committer | Jose Medrano <josmed@microsoft.com> | 2022-03-29 20:40:18 +0300 |
commit | 569e02f1f00d055a9b3bf5ae43be5fe56fe4f2af (patch) | |
tree | 28fcc96bc0e7ac72693476a5bc8d4394bb6c29c5 | |
parent | 87b0a435e2f3eec34afc026e9c2eb1448ba6842c (diff) |
Sets a default parent in dialogs with empty parent
-rw-r--r-- | Xwt.XamMac/Xwt.Mac/DialogBackend.cs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/Xwt.XamMac/Xwt.Mac/DialogBackend.cs b/Xwt.XamMac/Xwt.Mac/DialogBackend.cs index c50c012b..effc9372 100644 --- a/Xwt.XamMac/Xwt.Mac/DialogBackend.cs +++ b/Xwt.XamMac/Xwt.Mac/DialogBackend.cs @@ -167,14 +167,21 @@ namespace Xwt.Mac public void RunLoop (IWindowFrameBackend parent) { - Visible = true; - modalSessionRunning = true; + NSWindow nsParent = parent?.Window as NSWindow; + if (nsParent == null) + { + //a modal dialog needs parent window so we try take the current key + nsParent = NSApplication.SharedApplication.ModalWindow ?? NSApplication.SharedApplication.KeyWindow; + } - NSWindow nsParent = parent.Window as NSWindow; if (nsParent != null && nsParent.IsVisible) { nsParent.AddChildWindow(this, NSWindowOrderingMode.Above); } + + Visible = true; + modalSessionRunning = true; + Util.CenterWindow(this, nsParent); NSApplication.SharedApplication.RunModalForWindow (this); } |