From 569e02f1f00d055a9b3bf5ae43be5fe56fe4f2af Mon Sep 17 00:00:00 2001 From: Jose Medrano Date: Tue, 29 Mar 2022 19:40:18 +0200 Subject: Sets a default parent in dialogs with empty parent --- Xwt.XamMac/Xwt.Mac/DialogBackend.cs | 13 ++++++++++--- 1 file 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); } -- cgit v1.2.3