]> git.saurik.com Git - wxWidgets.git/commitdiff
corrected bug in MacRedraw
authorStefan Csomor <csomor@advancedconcepts.ch>
Thu, 20 Dec 2001 06:42:38 +0000 (06:42 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Thu, 20 Dec 2001 06:42:38 +0000 (06:42 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13127 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/mac/carbon/window.cpp
src/mac/window.cpp

index 9bf4d5c69f9e42c385c3eb4758a10fb7fb849f40..a71937cd829ea7d34761c290d38244f2452e3fc1 100644 (file)
@@ -1440,8 +1440,6 @@ void wxWindowMac::MacRedraw( RgnHandle updatergn , long time, bool erase)
         CopyRgn( updatergn , ownUpdateRgn ) ;
         // subtract all children from updatergn, as soon as we start with transparent windows, these should
         // not be subtracted
-        RgnHandle eraseRgn = NewRgn() ;
-        CopyRgn( ownUpdateRgn , eraseRgn ) ;
 
         RgnHandle childarea = NewRgn() ;
         for (wxNode *node = GetChildren().First(); node; node = node->Next())
@@ -1451,7 +1449,7 @@ void wxWindowMac::MacRedraw( RgnHandle updatergn , long time, bool erase)
             if ( child->MacGetRootWindow() == window && child->IsShown() )
             {
                 SetRectRgn( childarea , child->m_x , child->m_y , child->m_x + child->m_width ,  child->m_y + child->m_height ) ;
-                DiffRgn( eraseRgn , childarea , eraseRgn ) ;
+                DiffRgn( ownUpdateRgn , childarea , ownUpdateRgn ) ;
             }
         }       
         DisposeRgn( childarea ) ;
@@ -1468,10 +1466,10 @@ void wxWindowMac::MacRedraw( RgnHandle updatergn , long time, bool erase)
         OffsetRgn( newupdate , -origin.x , -origin.y ) ;
         m_updateRegion = newupdate ;
         DisposeRgn( newupdate ) ; // it's been cloned to m_updateRegion
-        if ( erase && !EmptyRgn(eraseRgn) )
+        if ( erase && !EmptyRgn(ownUpdateRgn) )
         { 
           wxWindowDC dc(this);
-          dc.SetClippingRegion(wxRegion(eraseRgn));
+          dc.SetClippingRegion(wxRegion(ownUpdateRgn));
           wxEraseEvent eevent( GetId(), &dc );
           eevent.SetEventObject( this );
           GetEventHandler()->ProcessEvent( eevent );
@@ -1481,7 +1479,6 @@ void wxWindowMac::MacRedraw( RgnHandle updatergn , long time, bool erase)
           GetEventHandler()->ProcessEvent( eventNc );
         }
         DisposeRgn( ownUpdateRgn ) ; 
-        DisposeRgn( eraseRgn ) ;
         if ( !m_updateRegion.Empty() )
         {
           wxPaintEvent event;
index 9bf4d5c69f9e42c385c3eb4758a10fb7fb849f40..a71937cd829ea7d34761c290d38244f2452e3fc1 100644 (file)
@@ -1440,8 +1440,6 @@ void wxWindowMac::MacRedraw( RgnHandle updatergn , long time, bool erase)
         CopyRgn( updatergn , ownUpdateRgn ) ;
         // subtract all children from updatergn, as soon as we start with transparent windows, these should
         // not be subtracted
-        RgnHandle eraseRgn = NewRgn() ;
-        CopyRgn( ownUpdateRgn , eraseRgn ) ;
 
         RgnHandle childarea = NewRgn() ;
         for (wxNode *node = GetChildren().First(); node; node = node->Next())
@@ -1451,7 +1449,7 @@ void wxWindowMac::MacRedraw( RgnHandle updatergn , long time, bool erase)
             if ( child->MacGetRootWindow() == window && child->IsShown() )
             {
                 SetRectRgn( childarea , child->m_x , child->m_y , child->m_x + child->m_width ,  child->m_y + child->m_height ) ;
-                DiffRgn( eraseRgn , childarea , eraseRgn ) ;
+                DiffRgn( ownUpdateRgn , childarea , ownUpdateRgn ) ;
             }
         }       
         DisposeRgn( childarea ) ;
@@ -1468,10 +1466,10 @@ void wxWindowMac::MacRedraw( RgnHandle updatergn , long time, bool erase)
         OffsetRgn( newupdate , -origin.x , -origin.y ) ;
         m_updateRegion = newupdate ;
         DisposeRgn( newupdate ) ; // it's been cloned to m_updateRegion
-        if ( erase && !EmptyRgn(eraseRgn) )
+        if ( erase && !EmptyRgn(ownUpdateRgn) )
         { 
           wxWindowDC dc(this);
-          dc.SetClippingRegion(wxRegion(eraseRgn));
+          dc.SetClippingRegion(wxRegion(ownUpdateRgn));
           wxEraseEvent eevent( GetId(), &dc );
           eevent.SetEventObject( this );
           GetEventHandler()->ProcessEvent( eevent );
@@ -1481,7 +1479,6 @@ void wxWindowMac::MacRedraw( RgnHandle updatergn , long time, bool erase)
           GetEventHandler()->ProcessEvent( eventNc );
         }
         DisposeRgn( ownUpdateRgn ) ; 
-        DisposeRgn( eraseRgn ) ;
         if ( !m_updateRegion.Empty() )
         {
           wxPaintEvent event;