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

github.com/mono/xwt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVsevolod Kukol <sevoku@microsoft.com>2022-03-30 16:59:59 +0300
committerGitHub <noreply@github.com>2022-03-30 16:59:59 +0300
commitbdfba7a36c3bf797043d8726510dc1a7b5ceb8dd (patch)
tree28fcc96bc0e7ac72693476a5bc8d4394bb6c29c5
parent87b0a435e2f3eec34afc026e9c2eb1448ba6842c (diff)
parent569e02f1f00d055a9b3bf5ae43be5fe56fe4f2af (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.cs13
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);
}