if( dx == 0 && dy ==0 )
return ;
- wxClientDC dc(this) ;
- wxMacPortSetter helper(&dc) ;
{
+ wxClientDC dc(this) ;
+ wxMacPortSetter helper(&dc) ;
+
int width , height ;
GetClientSize( &width , &height ) ;
GetWindowUpdateRgn( rootWindow , formerUpdateRgn ) ;
Point pt = {0,0} ;
LocalToGlobal( &pt ) ;
- OffsetRgn( updateRgn , -pt.h , -pt.v ) ;
+ OffsetRgn( formerUpdateRgn , -pt.h , -pt.v ) ;
SectRgn( formerUpdateRgn , scrollRgn , formerUpdateRgn ) ;
if ( !EmptyRgn( formerUpdateRgn ) )
{
::SetPort( UMAGetWindowPort( rootWindow ) ) ;
Point pt = {0,0} ;
LocalToGlobal( &pt ) ;
- ::GlobalToLocal( &pt ) ;
::SetPort( port ) ;
OffsetRgn( updateRgn , -pt.h , -pt.v ) ;
// translate to window local coordinates
DisposeRgn( ownUpdateRgn ) ;
if ( !m_updateRegion.Empty() )
{
+ wxWindowList hiddenWindows ;
+ for (wxWindowListNode *node = GetChildren().GetFirst(); node; node = node->GetNext())
+ {
+ wxControl *child = wxDynamicCast( ( wxWindow*)node->GetData() , wxControl ) ;
+
+ if ( child && child->MacGetRootWindow() == window && child->IsShown() && child->GetMacControl() )
+ {
+ SetControlVisibility( (ControlHandle) child->GetMacControl() , false , false ) ;
+ hiddenWindows.Append( child ) ;
+ }
+ }
+
wxPaintEvent event;
event.m_timeStamp = time ;
event.SetEventObject(this);
GetEventHandler()->ProcessEvent(event);
+
+ for (wxWindowListNode *node = hiddenWindows.GetFirst(); node; node = node->GetNext())
+ {
+ wxControl *child = wxDynamicCast( ( wxWindow*)node->GetData() , wxControl ) ;
+
+ if ( child && child->GetMacControl() )
+ {
+ SetControlVisibility( (ControlHandle) child->GetMacControl() , true , false ) ;
+ }
+ }
}
}