supporting native background color on wxWindow descendants that are not themselves native controls, like eg wxPanel , see #13032
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67862 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -802,12 +802,31 @@ void wxOSX_drawRect(NSView* self, SEL _cmd, NSRect rect)
|
|||||||
// [NSWindow setAllowsConcurrentViewDrawing:NO] does not affect it.
|
// [NSWindow setAllowsConcurrentViewDrawing:NO] does not affect it.
|
||||||
if ( !wxThread::IsMain() )
|
if ( !wxThread::IsMain() )
|
||||||
{
|
{
|
||||||
// just call the superclass handler, we don't need any custom wx drawing
|
if ( impl->IsUserPane() )
|
||||||
// here and it seems to work fine:
|
{
|
||||||
wxOSX_DrawRectHandlerPtr
|
wxWindow* win = impl->GetWXPeer();
|
||||||
superimpl = (wxOSX_DrawRectHandlerPtr)
|
if ( win->UseBgCol() )
|
||||||
[[self superclass] instanceMethodForSelector:_cmd];
|
{
|
||||||
superimpl(self, _cmd, rect);
|
|
||||||
|
CGContextRef context = (CGContextRef) [[NSGraphicsContext currentContext] graphicsPort];
|
||||||
|
CGContextSaveGState( context );
|
||||||
|
|
||||||
|
CGContextSetFillColorWithColor( context, win->GetBackgroundColour().GetCGColor());
|
||||||
|
CGContextFillRect( context, NSRectToCGRect(rect) );
|
||||||
|
|
||||||
|
CGContextRestoreGState( context );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// just call the superclass handler, we don't need any custom wx drawing
|
||||||
|
// here and it seems to work fine:
|
||||||
|
wxOSX_DrawRectHandlerPtr
|
||||||
|
superimpl = (wxOSX_DrawRectHandlerPtr)
|
||||||
|
[[self superclass] instanceMethodForSelector:_cmd];
|
||||||
|
superimpl(self, _cmd, rect);
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif // wxUSE_THREADS
|
#endif // wxUSE_THREADS
|
||||||
|
Reference in New Issue
Block a user