]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/window.cpp
applied patch for compilation with gcc 3.0
[wxWidgets.git] / src / mac / window.cpp
index f44503d55587d5668228fae5ffa7db323e37107c..95e1077a9b48bc445a105060c375ea6bfdfad10e 100644 (file)
@@ -1872,7 +1872,7 @@ void wxWindow::MacRedraw( RgnHandle updatergn , long time)
                                RGBBackColor( &m_backgroundColour.GetPixel()) ;
                        }
             // subtract all non transparent children from updatergn
                                RGBBackColor( &m_backgroundColour.GetPixel()) ;
                        }
             // subtract all non transparent children from updatergn
-
+            
            RgnHandle childarea = NewRgn() ;
                for (wxNode *node = GetChildren().First(); node; node = node->Next())
                {
            RgnHandle childarea = NewRgn() ;
                for (wxNode *node = GetChildren().First(); node; node = node->Next())
                {
@@ -1880,7 +1880,7 @@ void wxWindow::MacRedraw( RgnHandle updatergn , long time)
                        // eventually test for transparent windows
                        if ( child->GetMacRootWindow() == window && child->IsShown() )
                        {
                        // eventually test for transparent windows
                        if ( child->GetMacRootWindow() == window && child->IsShown() )
                        {
-                           if ( !child->IsKindOf( CLASSINFO( wxControl ) ) && ((wxControl*)child)->GetMacControl() )
+                           if ( child->GetBackgroundColour() != m_backgroundColour && !child->IsKindOf( CLASSINFO( wxControl ) ) && ((wxControl*)child)->GetMacControl() )
                            {
                                SetRectRgn( childarea , child->m_x , child->m_y , child->m_x + child->m_width ,  child->m_y + child->m_height ) ;
                                DiffRgn( ownUpdateRgn , childarea , ownUpdateRgn ) ;
                            {
                                SetRectRgn( childarea , child->m_x , child->m_y , child->m_x + child->m_width ,  child->m_y + child->m_height ) ;
                                DiffRgn( ownUpdateRgn , childarea , ownUpdateRgn ) ;