diff options
author | Vsevolod Kukol <sevoku@microsoft.com> | 2022-03-30 16:59:59 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-30 16:59:59 +0300 |
commit | bdfba7a36c3bf797043d8726510dc1a7b5ceb8dd (patch) | |
tree | 28fcc96bc0e7ac72693476a5bc8d4394bb6c29c5 | |
parent | 87b0a435e2f3eec34afc026e9c2eb1448ba6842c (diff) | |
parent | 569e02f1f00d055a9b3bf5ae43be5fe56fe4f2af (diff) |
Merge pull request #1099 from mono/parenting_dialog_backend
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); } |