From: Vadim Zeitlin Date: Sat, 9 Jun 2001 17:40:44 +0000 (+0000) Subject: fixed bug 418496 (wxDC::SetClippingRegion doesn't clear the previous clipping region) X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/40a890760544ad228412e64a7dd91ac3135653d9?ds=sidebyside fixed bug 418496 (wxDC::SetClippingRegion doesn't clear the previous clipping region) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10476 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/msw/dc.cpp b/src/msw/dc.cpp index 2ffb926417..2a79ff7f85 100644 --- a/src/msw/dc.cpp +++ b/src/msw/dc.cpp @@ -278,9 +278,22 @@ void wxDC::SelectOldObjects(WXHDC dc) void wxDC::DoSetClippingRegion(wxCoord cx, wxCoord cy, wxCoord cw, wxCoord ch) { m_clipping = TRUE; - IntersectClipRect(GetHdc(), XLOG2DEV(cx), YLOG2DEV(cy), + + HRGN hrgn = ::CreateRectRgn(XLOG2DEV(cx), YLOG2DEV(cy), XLOG2DEV(cx + cw), YLOG2DEV(cy + ch)); - DO_SET_CLIPPING_BOX() + if ( !hrgn ) + { + wxLogLastError(_T("CreateRectRgn")); + } + else + { + if ( ::SelectClipRgn(GetHdc(), hrgn) == ERROR ) + { + wxLogLastError(_T("SelectClipRgn")); + } + + DO_SET_CLIPPING_BOX() + } } void wxDC::DoSetClippingRegionAsRegion(const wxRegion& region)