workaround because regions that were built up, were sometimes being drawn on the screen as well...

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35234 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2005-08-19 16:29:09 +00:00
parent f2555abd7a
commit 5e8c9935fd

View File

@@ -89,6 +89,21 @@ wxRegion::wxRegion(size_t n, const wxPoint *points, int WXUNUSED(fillStyle))
{
m_refData = new wxRegionRefData;
// OS X somehow does not collect the region invisibly as before, so sometimes things
// get drawn on screen instead of just being combined into a region, therefore we allocate a temp gworld now
GWorldPtr gWorld = NULL;
GWorldPtr oldWorld;
GDHandle oldGDHandle;
OSStatus err ;
Rect destRect = {0,0,1,1};
::GetGWorld( &oldWorld, &oldGDHandle );
err = ::NewGWorld( &gWorld, 32, &destRect, nil, nil, 0 );
if ( err == noErr )
{
::SetGWorld( gWorld, GetGDevice() );
OpenRgn();
wxCoord x1, x2 , y1 , y2 ;
@@ -106,8 +121,9 @@ wxRegion::wxRegion(size_t n, const wxPoint *points, int WXUNUSED(fillStyle))
{
::LineTo(x1,y1 ) ;
}
ClosePoly();
CloseRgn( M_REGION ) ;
::SetGWorld( oldWorld, oldGDHandle );
}
}
/*!