-#if UMA_USE_APPEARANCE
- if ( UMAHasAppearance() )
- {
- ::DeactivateControl( inControl ) ;
- }
- else
-#endif
-#if !TARGET_CARBON
- {
- AGADeactivateControl( inControl ) ;
- }
-#else
- {
- }
-#endif
-}
-
-void UMASetThemeWindowBackground (WindowRef inWindow,
- ThemeBrush inBrush,
- Boolean inUpdate)
-{
-#if UMA_USE_APPEARANCE
- if ( UMAHasAppearance() )
- {
- ::SetThemeWindowBackground( inWindow ,inBrush , inUpdate ) ;
- }
- else
-#endif
-#if !TARGET_CARBON
- {
- AGASetThemeWindowBackground( inWindow , inBrush , inUpdate ) ;
- }
-#else
- {
- }
-#endif
-}
-
-void UMAApplyThemeBackground (ThemeBackgroundKind inKind,
- const Rect * bounds,
- ThemeDrawState inState,
- SInt16 inDepth,
- Boolean inColorDev)
-{
-#if UMA_USE_APPEARANCE
- if ( UMAHasAppearance() )
- {
- /*
- if ( sUMAAppearanceVersion >= 0x0110 )
- ::ApplyThemeBackground( inKind ,bounds , inState , inDepth , inColorDev ) ;
- */
- }
- else
-#endif
-#if !TARGET_CARBON
- {
- AGAApplyThemeBackground( inKind ,bounds , inState , inDepth , inColorDev ) ;
- }
-#else
- {
- }
-#endif
-}
-
-ControlHandle UMANewControl(WindowPtr owningWindow,
- const Rect * boundsRect,
- ConstStr255Param controlTitle,
- Boolean initiallyVisible,
- SInt16 initialValue,
- SInt16 minimumValue,
- SInt16 maximumValue,
- SInt16 procID,
- SInt32 controlReference)
-{
- ControlHandle theControl = NULL ;
-#if UMA_USE_APPEARANCE
- if ( UMAHasAppearance() )
- {
- theControl = NewControl( owningWindow , boundsRect , controlTitle , initiallyVisible ,
- initialValue , minimumValue , maximumValue , procID , controlReference ) ;
- }
- else
-#endif
-#if !TARGET_CARBON
- {
- theControl = AGANewControl( owningWindow , boundsRect , controlTitle , initiallyVisible ,
- initialValue , minimumValue , maximumValue , procID , controlReference ) ;
- }
-#else
- {
- }
-#endif
- return theControl ;
-}
-
-void UMADisposeControl (ControlHandle theControl)
-{
- if ( UMAHasAppearance() )
- {
- ::DisposeControl( theControl ) ;
- }
- else
- {
- ::DisposeControl( theControl ) ;
- }
-}
-
-
-void UMAHiliteControl (ControlHandle theControl,
- ControlPartCode hiliteState)
- {
- if ( UMAHasAppearance() )
- {
- ::HiliteControl( theControl , hiliteState ) ;
- }
- else
- {
- ::HiliteControl( theControl , hiliteState ) ;
- }
-}
-
-
-void UMAShowControl (ControlHandle theControl)
-{
- if ( UMAHasAppearance() )
- {
- ::ShowControl( theControl ) ;
- }
- else
- {
- ::ShowControl( theControl ) ;
- }
+ // we have to add the control after again to the update rgn
+ // otherwise updates get lost
+ bool visible = IsControlVisible( inControl ) ;
+ if ( visible )
+ SetControlVisibility( inControl , false , false ) ;
+ ::DeactivateControl( inControl ) ;
+ if ( visible ) {
+ SetControlVisibility( inControl , true , false ) ;
+ Rect ctrlBounds ;
+ InvalWindowRect(GetControlOwner(inControl),GetControlBounds(inControl,&ctrlBounds) ) ;
+ }