- WindowRef window = MacGetRootWindow() ;
- if ( window )
- {
- wxWindow* win = wxFindWinFromMacWindow( window ) ;
- if ( win )
- {
- wxMacDrawingHelper help( win ) ;
- // the mac control manager always assumes to have the origin at 0,0
- SetOrigin( 0 , 0 ) ;
- wxDC::MacSetupBackgroundForCurrentPort( MacGetBackgroundBrush() ) ;
- UMADrawControl( m_macControl ) ;
- }
- }
+ wxClientDC dc(this) ;
+ wxMacPortSetter helper(&dc) ;
+/*
+ Rect r = { 0 , 0 , 32000 , 32000 } ;
+ ClipRect( &r ) ;
+*/
+ int x = 0 , y = 0;
+ wxWindow *parent = GetParent() ;
+ parent->MacWindowToRootWindow( &x,&y ) ;
+ RgnHandle clrgn = NewRgn() ;
+ RgnHandle insidergn = NewRgn() ;
+ wxSize size = parent->GetSize() ;
+ SetRectRgn( insidergn , parent->MacGetLeftBorderSize() , parent->MacGetTopBorderSize() ,
+ size.x - parent->MacGetLeftBorderSize() - parent->MacGetRightBorderSize(),
+ size.y - parent->MacGetTopBorderSize() - parent->MacGetBottomBorderSize()) ;
+
+ CopyRgn( (RgnHandle) parent->MacGetVisibleRegion(false).GetWXHRGN() , clrgn ) ;
+ SectRgn( clrgn , insidergn , clrgn ) ;
+ OffsetRgn( clrgn , x , y ) ;
+ SetClip( clrgn ) ;
+ DisposeRgn( clrgn ) ;
+ DisposeRgn( insidergn ) ;
+
+ wxDC::MacSetupBackgroundForCurrentPort( MacGetBackgroundBrush() ) ;
+ UMADrawControl( (ControlHandle) m_macControl ) ;