]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/core/evtloop_cf.cpp
no-op change to get build bot running
[wxWidgets.git] / src / osx / core / evtloop_cf.cpp
index eec3c3bfb006726389ad449448a1ddd4614ea252..6dc470f8174d0d0ef5830b135d367f628991acbc 100644 (file)
@@ -146,14 +146,14 @@ 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 )
         eventloop->ObserverCallBack(observer, activity);
 }
 
-void wxCFEventLoop::ObserverCallBack(CFRunLoopObserverRef observer, int activity)
+void wxCFEventLoop::ObserverCallBack(CFRunLoopObserverRef WXUNUSED(observer), int activity)
 {
     if ( activity & kCFRunLoopBeforeTimers )
     {
@@ -196,13 +196,14 @@ wxCFEventLoop::wxCFEventLoop()
     bzero( &ctxt, sizeof(ctxt) );
     ctxt.info = this;
     m_runLoopObserver = CFRunLoopObserverCreate( kCFAllocatorDefault, kCFRunLoopBeforeTimers | kCFRunLoopBeforeWaiting , true /* repeats */, 0,
-                                                wxObserverCallBack, &ctxt );
-    CFRunLoopAddObserver(m_runLoop, m_runLoopObserver, kCFRunLoopDefaultMode);
+                                            wxObserverCallBack, &ctxt );
+    CFRunLoopAddObserver(m_runLoop, m_runLoopObserver, kCFRunLoopCommonModes);
+    CFRelease(m_runLoopObserver);
 }
 
 wxCFEventLoop::~wxCFEventLoop()
 {
-    CFRunLoopRemoveObserver(m_runLoop, m_runLoopObserver, kCFRunLoopDefaultMode);
+    CFRunLoopRemoveObserver(m_runLoop, m_runLoopObserver, kCFRunLoopCommonModes);
 }
 
 
@@ -213,11 +214,21 @@ CFRunLoopRef wxCFEventLoop::CFGetCurrentRunLoop() const
 
 void wxCFEventLoop::WakeUp()
 {
-    extern void wxMacWakeUp();
+    CFRunLoopWakeUp(m_runLoop);
+}
+
+#if wxUSE_BASE
 
-    wxMacWakeUp();
+void wxMacWakeUp()
+{
+    wxEventLoopBase * const loop = wxEventLoopBase::GetActive();
+    
+    if ( loop )
+        loop->WakeUp();
 }
 
+#endif
+
 bool wxCFEventLoop::YieldFor(long eventsToProcess)
 {
 #if wxUSE_THREADS
@@ -267,7 +278,7 @@ bool wxCFEventLoop::Pending() const
 
 int wxCFEventLoop::DoProcessEvents()
 {
-    return DispatchTimeout( 1000 );
+    return DispatchTimeout( 0 );
 }
 
 bool wxCFEventLoop::Dispatch()