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(),
}
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
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