From 094898332baf2e46ed876ec4cae657fbaa098570 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Mon, 9 Feb 2009 09:54:23 +0000 Subject: [PATCH] drawing code now in common file git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58807 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/osx/cocoa/window.mm | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/src/osx/cocoa/window.mm b/src/osx/cocoa/window.mm index 3f9f4e7154..479d0c776c 100644 --- a/src/osx/cocoa/window.mm +++ b/src/osx/cocoa/window.mm @@ -755,34 +755,22 @@ void wxWidgetCocoaImpl::drawRect(void* rect, WXWidget slf, void *_cmd) wxpeer->GetUpdateRegion() = updateRgn; wxpeer->MacSetCGContextRef( context ); - // first send an erase event to the entire update area - // for the toplevel window this really is the entire area - // for all the others only their client area, otherwise they - // might be drawing with full alpha and eg put blue into - // the grow-box area of a scrolled window (scroll sample) - - wxDC* dc = new wxWindowDC(wxpeer); - dc->SetDeviceClippingRegion(updateRgn); - - wxEraseEvent eevent( wxpeer->GetId(), dc ); - eevent.SetEventObject( wxpeer ); - wxpeer->HandleWindowEvent( eevent ); - delete dc ; - - wxPaintEvent event; - event.SetTimestamp(0); // todo - event.SetEventObject(wxpeer); - bool handled = wxpeer->HandleWindowEvent(event); + bool handled = wxpeer->MacDoRedraw( 0 ); CGContextRestoreGState( context ); - + + CGContextSaveGState( context ); if ( !handled ) { // call super SEL _cmd = @selector(drawRect:); wxOSX_DrawRectHandlerPtr superimpl = (wxOSX_DrawRectHandlerPtr) [[slf superclass] instanceMethodForSelector:_cmd]; superimpl(slf, _cmd, *(NSRect*)rect); + CGContextRestoreGState( context ); + CGContextSaveGState( context ); } + wxpeer->MacPaintChildrenBorders(); + CGContextRestoreGState( context ); } void wxWidgetCocoaImpl::clickedAction( WXWidget slf, void *_cmd, void *sender)