From 85a74f93bf8deeb24caea31a6435eede98143f9c Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Tue, 19 Jul 2011 16:17:44 +0000 Subject: [PATCH] make sure we can issue a WakeUp call that really triggers at the NSRunLoop level not only only CFRunLoop git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68301 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/osx/cocoa/evtloop.h | 2 ++ src/osx/cocoa/evtloop.mm | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/wx/osx/cocoa/evtloop.h b/include/wx/osx/cocoa/evtloop.h index e38cf92c38..a327ee45de 100644 --- a/include/wx/osx/cocoa/evtloop.h +++ b/include/wx/osx/cocoa/evtloop.h @@ -21,6 +21,8 @@ public: void EndModalSession(); + virtual void WakeUp(); + protected: virtual int DoDispatchTimeout(unsigned long timeout); diff --git a/src/osx/cocoa/evtloop.mm b/src/osx/cocoa/evtloop.mm index 4814425583..759c02b1ca 100644 --- a/src/osx/cocoa/evtloop.mm +++ b/src/osx/cocoa/evtloop.mm @@ -246,9 +246,14 @@ void wxGUIEventLoop::DoRun() void wxGUIEventLoop::DoStop() { - [NSApp stop:0]; // only calling stop: is not enough when called from a runloop-observer, // therefore add a dummy event, to make sure the runloop gets another round + [NSApp stop:0]; + WakeUp(); +} + +void wxGUIEventLoop::WakeUp() +{ NSEvent *event = [NSEvent otherEventWithType:NSApplicationDefined location:NSMakePoint(0.0, 0.0) modifierFlags:0 -- 2.45.2