]> git.saurik.com Git - wxWidgets.git/commitdiff
closer clipping
authorStefan Csomor <csomor@advancedconcepts.ch>
Tue, 28 Jan 2003 08:24:38 +0000 (08:24 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Tue, 28 Jan 2003 08:24:38 +0000 (08:24 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18977 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/mac/carbon/dc.cpp
src/mac/dc.cpp

index 638a4f0d58eddb758c577b739fb920abd98f44b9..1d19d743cd83433a73580a5f1cc23b00e5d6bafa 100644 (file)
@@ -64,6 +64,9 @@ wxMacWindowClipper::wxMacWindowClipper( const wxWindow* win )
     
     if ( win )
     {
+#if 0
+       // this clipping area was set to the parent window's drawing area, lead to problems
+       // with MacOSX controls drawing outside their wx' rectangle
         RgnHandle insidergn = NewRgn() ;
         int x = 0 , y = 0;
         wxWindow *parent = win->GetParent() ;
@@ -77,6 +80,13 @@ wxMacWindowClipper::wxMacWindowClipper( const wxWindow* win )
         OffsetRgn( m_newClip , x , y ) ;
         SetClip( m_newClip ) ;
        DisposeRgn( insidergn ) ;
+#endif
+        RgnHandle insidergn = NewRgn() ;
+        int x = 0 , y = 0;
+        win->MacWindowToRootWindow( &x,&y ) ;
+        CopyRgn( (RgnHandle) ((wxWindow*)win)->MacGetVisibleRegion().GetWXHRGN() , m_newClip ) ;
+        OffsetRgn( m_newClip , x , y ) ;
+        SetClip( m_newClip ) ;
        }
 }
 wxMacWindowClipper::~wxMacWindowClipper() 
index 638a4f0d58eddb758c577b739fb920abd98f44b9..1d19d743cd83433a73580a5f1cc23b00e5d6bafa 100644 (file)
@@ -64,6 +64,9 @@ wxMacWindowClipper::wxMacWindowClipper( const wxWindow* win )
     
     if ( win )
     {
+#if 0
+       // this clipping area was set to the parent window's drawing area, lead to problems
+       // with MacOSX controls drawing outside their wx' rectangle
         RgnHandle insidergn = NewRgn() ;
         int x = 0 , y = 0;
         wxWindow *parent = win->GetParent() ;
@@ -77,6 +80,13 @@ wxMacWindowClipper::wxMacWindowClipper( const wxWindow* win )
         OffsetRgn( m_newClip , x , y ) ;
         SetClip( m_newClip ) ;
        DisposeRgn( insidergn ) ;
+#endif
+        RgnHandle insidergn = NewRgn() ;
+        int x = 0 , y = 0;
+        win->MacWindowToRootWindow( &x,&y ) ;
+        CopyRgn( (RgnHandle) ((wxWindow*)win)->MacGetVisibleRegion().GetWXHRGN() , m_newClip ) ;
+        OffsetRgn( m_newClip , x , y ) ;
+        SetClip( m_newClip ) ;
        }
 }
 wxMacWindowClipper::~wxMacWindowClipper()