diff options
author | Lluis Sanchez <lluis@xamarin.com> | 2013-11-06 21:28:48 +0400 |
---|---|---|
committer | Lluis Sanchez <lluis@xamarin.com> | 2013-11-06 21:29:30 +0400 |
commit | 309a36f6ab3e6e65145c9e784f5d9d7f443f4951 (patch) | |
tree | 54e15879623081385b8d67a30f3f3191506a38e7 /Xwt.Mac | |
parent | fdbddebc9bd78d8c3801fb66e628e3c9d44d9e64 (diff) |
CloseRequested event fixes
Changed the meaning of the return value of OnCloseRequested. If it returns
true, the window will be closed. The event args now has an AllowClose
proeprty. Implemented for the mac backend.
Diffstat (limited to 'Xwt.Mac')
-rw-r--r-- | Xwt.Mac/Xwt.Mac/WindowBackend.cs | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/Xwt.Mac/Xwt.Mac/WindowBackend.cs b/Xwt.Mac/Xwt.Mac/WindowBackend.cs index 06affc19..952a8541 100644 --- a/Xwt.Mac/Xwt.Mac/WindowBackend.cs +++ b/Xwt.Mac/Xwt.Mac/WindowBackend.cs @@ -176,17 +176,20 @@ namespace Xwt.Mac if (eventId is WindowFrameEvent) { var @event = (WindowFrameEvent)eventId; switch (@event) { - case WindowFrameEvent.BoundsChanged: - DidResize += HandleDidResize; - DidMoved += HandleDidResize; - break; - case WindowFrameEvent.Hidden: - EnableVisibilityEvent (@event); - this.WillClose += OnWillClose; - break; - case WindowFrameEvent.Shown: - EnableVisibilityEvent (@event); - break; + case WindowFrameEvent.BoundsChanged: + DidResize += HandleDidResize; + DidMoved += HandleDidResize; + break; + case WindowFrameEvent.Hidden: + EnableVisibilityEvent (@event); + this.WillClose += OnWillClose; + break; + case WindowFrameEvent.Shown: + EnableVisibilityEvent (@event); + break; + case WindowFrameEvent.CloseRequested: + WindowShouldClose = OnShouldClose; + break; } } } @@ -194,6 +197,13 @@ namespace Xwt.Mac void OnWillClose (object sender, EventArgs args) { OnHidden (); } + + bool OnShouldClose (NSObject ob) + { + bool res = true; + ApplicationContext.InvokeUserCode (() => res = eventSink.OnCloseRequested ()); + return res; + } bool VisibilityEventsEnabled () { |