#endif // platforms using "manual" loop
-// include the header defining wxConsoleEventLoop for Unix systems
-#if defined(__UNIX__)
- #include "wx/unix/evtloop.h"
-#endif
-
// we're moving away from old m_impl wxEventLoop model as otherwise the user
// code doesn't have access to platform-specific wxEventLoop methods and this
// can sometimes be very useful (e.g. under MSW this is necessary for
#endif // wxUSE_GUI
+// include the header defining wxConsoleEventLoop for Unix systems
+#if defined(__UNIX__)
+#include "wx/unix/evtloop.h"
+#endif
+
#if wxUSE_GUI
// we use a class rather than a typedef because wxEventLoop is
// forward-declared in many places
{
m_shouldExit = false;
+ m_runLoop = CFGetCurrentRunLoop();
+
CFRunLoopObserverContext ctxt;
bzero( &ctxt, sizeof(ctxt) );
ctxt.info = this;
m_runLoopObserver = CFRunLoopObserverCreate( kCFAllocatorDefault, kCFRunLoopBeforeTimers | kCFRunLoopBeforeWaiting , true /* repeats */, 0,
wxObserverCallBack, &ctxt );
- CFRunLoopAddObserver(CFGetCurrentRunLoop(), m_runLoopObserver, kCFRunLoopDefaultMode);
+ CFRunLoopAddObserver(m_runLoop, m_runLoopObserver, kCFRunLoopDefaultMode);
}
wxCFEventLoop::~wxCFEventLoop()
{
+ CFRunLoopRemoveObserver(m_runLoop, m_runLoopObserver, kCFRunLoopDefaultMode);
}