]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/app.cpp
make sure we always restore the passed in cg in a paint event
[wxWidgets.git] / src / mac / carbon / app.cpp
index 21288925118a8dca777cb65f851d862228b8d5f7..e997cc3e1b15c2c447fe1035c176c85f1ccac924 100644 (file)
@@ -850,6 +850,8 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
     event_posted_context.perform = macPostedEventCallback;
     m_macEventPosted = CFRunLoopSourceCreate(NULL,0,&event_posted_context);
     CFRunLoopAddSource(CFRunLoopGetCurrent(), m_macEventPosted, kCFRunLoopCommonModes);
+       // run loop takes ownership
+       CFRelease(m_macEventPosted);
 #endif
 
     UMAShowArrowCursor() ;
@@ -908,8 +910,10 @@ void wxApp::CleanUp()
 
 #ifdef __WXMAC_OSX__
     if (m_macEventPosted)
-        CFRelease(m_macEventPosted);
-    m_macEventPosted = NULL;
+       {
+               CFRunLoopRemoveSource(CFRunLoopGetCurrent(), m_macEventPosted, kCFRunLoopCommonModes);
+               m_macEventPosted = NULL;
+       }
 #endif
 
     // One last chance for pending objects to be cleaned up