diff --git a/src/mac/carbon/dc.cpp b/src/mac/carbon/dc.cpp index 1ad485e36f..aeded9e927 100644 --- a/src/mac/carbon/dc.cpp +++ b/src/mac/carbon/dc.cpp @@ -71,15 +71,21 @@ public : wxASSERT( dc->Ok() ) ; GetPort( &m_oldPort ) ; SetPort( (GrafPtr) dc->m_macPort ) ; + m_clipRgn = NewRgn() ; + GetClip( m_clipRgn ) ; m_dc = dc ; dc->MacSetupPort( NULL ) ; } ~wxMacFastPortSetter() { + SetPort( (GrafPtr) m_dc->m_macPort ) ; + SetClip( m_clipRgn ) ; SetPort( m_oldPort ) ; m_dc->MacCleanupPort( NULL ) ; + DisposeRgn( m_clipRgn ) ; } private : + RgnHandle m_clipRgn ; GrafPtr m_oldPort ; const wxDC* m_dc ; } ; diff --git a/src/mac/dc.cpp b/src/mac/dc.cpp index 1ad485e36f..aeded9e927 100644 --- a/src/mac/dc.cpp +++ b/src/mac/dc.cpp @@ -71,15 +71,21 @@ public : wxASSERT( dc->Ok() ) ; GetPort( &m_oldPort ) ; SetPort( (GrafPtr) dc->m_macPort ) ; + m_clipRgn = NewRgn() ; + GetClip( m_clipRgn ) ; m_dc = dc ; dc->MacSetupPort( NULL ) ; } ~wxMacFastPortSetter() { + SetPort( (GrafPtr) m_dc->m_macPort ) ; + SetClip( m_clipRgn ) ; SetPort( m_oldPort ) ; m_dc->MacCleanupPort( NULL ) ; + DisposeRgn( m_clipRgn ) ; } private : + RgnHandle m_clipRgn ; GrafPtr m_oldPort ; const wxDC* m_dc ; } ;