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:
authorLluis Sanchez <lluis@xamarin.com>2013-11-06 21:28:48 +0400
committerLluis Sanchez <lluis@xamarin.com>2013-11-06 21:29:30 +0400
commit309a36f6ab3e6e65145c9e784f5d9d7f443f4951 (patch)
tree54e15879623081385b8d67a30f3f3191506a38e7 /Xwt.Mac
parentfdbddebc9bd78d8c3801fb66e628e3c9d44d9e64 (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.cs32
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 ()
{