]> git.saurik.com Git - wxWidgets.git/commitdiff
common wxMacWakeUp code across all platforms
authorStefan Csomor <csomor@advancedconcepts.ch>
Wed, 19 May 2010 08:25:48 +0000 (08:25 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Wed, 19 May 2010 08:25:48 +0000 (08:25 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64342 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/osx/core/evtloop_cf.cpp

index 3b85b350851f3eff4204ab54e7a53a2c336ed123..ad9a5da15e86892c411f15955a2a1e1560353379 100644 (file)
@@ -146,7 +146,7 @@ wxCFEventLoop::AddSourceForFD(int WXUNUSED(fd),
 
 #endif // wxUSE_EVENTLOOP_SOURCE
 
-void wxObserverCallBack(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *info)
+extern "C" void wxObserverCallBack(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *info)
 {
     wxCFEventLoop * eventloop = static_cast<wxCFEventLoop *>(info);
     if ( eventloop )
@@ -196,8 +196,9 @@ wxCFEventLoop::wxCFEventLoop()
     bzero( &ctxt, sizeof(ctxt) );
     ctxt.info = this;
     m_runLoopObserver = CFRunLoopObserverCreate( kCFAllocatorDefault, kCFRunLoopBeforeTimers | kCFRunLoopBeforeWaiting , true /* repeats */, 0,
-                                                wxObserverCallBack, &ctxt );
+                                            wxObserverCallBack, &ctxt );
     CFRunLoopAddObserver(m_runLoop, m_runLoopObserver, kCFRunLoopCommonModes);
+    CFRelease(m_runLoopObserver);
 }
 
 wxCFEventLoop::~wxCFEventLoop()
@@ -213,9 +214,7 @@ CFRunLoopRef wxCFEventLoop::CFGetCurrentRunLoop() const
 
 void wxCFEventLoop::WakeUp()
 {
-    extern void wxMacWakeUp();
-
-    wxMacWakeUp();
+    CFRunLoopWakeUp(m_runLoop);
 }
 
 bool wxCFEventLoop::YieldFor(long eventsToProcess)