From: Stefan Csomor Date: Wed, 4 Aug 2004 19:22:22 +0000 (+0000) Subject: fixing memleak, correcting huge background erase area X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/4b5aa5c823781bc039245681f7c87638ca0e4f95 fixing memleak, correcting huge background erase area git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28626 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/mac/carbon/window.cpp b/src/mac/carbon/window.cpp index fd3367ace1..f9877b75eb 100644 --- a/src/mac/carbon/window.cpp +++ b/src/mac/carbon/window.cpp @@ -1983,7 +1983,8 @@ void wxWindowMac::Refresh(bool eraseBack, const wxRect *rect) // right now this is wx' window coordinates, as our native peer does not have borders, this is // inset OffsetRgn( update , -MacGetLeftBorderSize() , -MacGetTopBorderSize() ) ; - m_peer->SetNeedsDisplay( true , update) ; + m_peer->SetNeedsDisplay( true , update) ; + DisposeRgn( update ) ; } #else /* @@ -2696,11 +2697,10 @@ bool wxWindowMac::MacDoRedraw( WXHRGN updatergnr , long time ) SetRectRgn( newupdate , origin.x , origin.y , origin.x + point.x , origin.y+point.y ) ; SectRgn( newupdate , updatergn , newupdate ) ; + if (!EmptyRgn(newupdate)) { wxWindowDC dc(this); - if (!EmptyRgn(newupdate)) - dc.SetClippingRegion(wxRegion(newupdate)); - + dc.SetClippingRegion(wxRegion(newupdate)); wxEraseEvent eevent( GetId(), &dc ); eevent.SetEventObject( this ); GetEventHandler()->ProcessEvent( eevent );