public Task ShowModalAsync(Control parent) { var tcs = new TaskCompletionSource <bool>(); session = null; if (parent != null && parent.ParentWindow != null) { var nswindow = parent.ParentWindow.ControlObject as NSWindow; if (nswindow != null) { Control.ParentWindow = nswindow; } } Callback.OnShown(Widget, EventArgs.Empty); Widget.Closed += HandleClosed; if (DisplayMode.HasFlag(DialogDisplayMode.Attached)) { MacModal.BeginSheet(Control, out session, () => tcs.SetResult(true)); } else { Control.MakeKeyWindow(); Application.Instance.AsyncInvoke(() => { MacModal.Run(Control, out session); tcs.SetResult(true); }); } return(tcs.Task); }
public void ShowModal(Control parent) { session = null; if (parent != null && parent.ParentWindow != null) { var nswindow = parent.ParentWindow.ControlObject as NSWindow; if (nswindow != null) { Control.ParentWindow = nswindow; } } Callback.OnShown(Widget, EventArgs.Empty); Widget.Closed += HandleClosed; if (DisplayMode.HasFlag(DialogDisplayMode.Attached)) { MacModal.RunSheet(Control, out session); } else { Control.MakeKeyWindow(); MacModal.Run(Control, out session); } }