]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/utils.cpp
readability cleanup
[wxWidgets.git] / src / mac / carbon / utils.cpp
index 1aff6d1778eab71149ca0fbb367d5c3f5a4b1012..b3756d3fa3b2b575748b674992c03904cd44a08a 100644 (file)
@@ -735,8 +735,10 @@ void wxMacWakeUp()
     if ( isSame )
     {
 #if TARGET_CARBON
-        static wxMacCarbonEvent s_wakeupEvent ;
         OSStatus err = noErr ;
+#if 0
+        // lead sometimes to race conditions, although all calls used should be thread safe ...
+        static wxMacCarbonEvent s_wakeupEvent ;
         if ( !s_wakeupEvent.IsValid() )
         {
            err = s_wakeupEvent.Create( 'WXMC', 'WXMC', GetCurrentEventTime(),
@@ -744,12 +746,20 @@ void wxMacWakeUp()
         }
         if ( err == noErr )
         {
+            
             if ( IsEventInQueue( GetMainEventQueue() , s_wakeupEvent ) )
                 return ;
             s_wakeupEvent.SetCurrentTime() ;
             err = PostEventToQueue(GetMainEventQueue(), s_wakeupEvent,
-                                  kEventPriorityHigh);
+                                  kEventPriorityHigh );
         }
+#else
+        wxMacCarbonEvent wakeupEvent ;
+        wakeupEvent.Create( 'WXMC', 'WXMC', GetCurrentEventTime(),
+                            kEventAttributeNone ) ;
+        err = PostEventToQueue(GetMainEventQueue(), wakeupEvent,
+                               kEventPriorityHigh );
+#endif
 #else
         PostEvent( nullEvent , 0 ) ;
 #endif
@@ -1537,23 +1547,34 @@ CMProfileRef wxMacOpenGenericProfile(void)
     return it whenever this function is called.
 */
 
+#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_4
+#define kCGColorSpaceGenericRGB   CFSTR("kCGColorSpaceGenericRGB")
+#endif
+
 CGColorSpaceRef wxMacGetGenericRGBColorSpace()
 {
-    static CGColorSpaceRef genericRGBColorSpace = NULL;
-
-    if (genericRGBColorSpace == NULL)
-    {
-        CMProfileRef genericRGBProfile = wxMacOpenGenericProfile();
+    static wxMacCFRefHolder<CGColorSpaceRef> genericRGBColorSpace ;
 
-        if (genericRGBProfile)
+       if (genericRGBColorSpace == NULL)
+       {
+        if ( UMAGetSystemVersion() >= 0x1040 )
         {
-            genericRGBColorSpace = CGColorSpaceCreateWithPlatformColorSpace(genericRGBProfile);
-            wxASSERT_MSG( genericRGBColorSpace != NULL, wxT("couldn't create the generic RGB color space") ) ;
-
-            // we opened the profile so it is up to us to close it
-            CMCloseProfile(genericRGBProfile);
+            genericRGBColorSpace.Set( CGColorSpaceCreateWithName( kCGColorSpaceGenericRGB ) ) ;
         }
-    }
+        else
+        {
+            CMProfileRef genericRGBProfile = wxMacOpenGenericProfile();
+        
+            if (genericRGBProfile)
+            {
+                genericRGBColorSpace.Set( CGColorSpaceCreateWithPlatformColorSpace(genericRGBProfile) ) ;
+                wxASSERT_MSG( genericRGBColorSpace != NULL, wxT("couldn't create the generic RGB color space") ) ;
+                
+                // we opened the profile so it is up to us to close it
+                CMCloseProfile(genericRGBProfile); 
+            }
+        }
+       }
     return genericRGBColorSpace;
 }
 #endif