From c2a9b451ba582d0e83ef9ee653fb397ec8812154 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 20 Nov 2013 12:01:03 +0000 Subject: [PATCH] Fix wxRegion::Offset() copy on write behaviour in wxMSW. Offset the correct, new and unshared, region handle instead of the old and possibly shared one. Closes #15690. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@75249 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 1 + src/msw/region.cpp | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index bdffb24eeb..4b6c1f2a5e 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -593,6 +593,7 @@ wxMSW: - Fix blank wxBitmapComboBox dropdown appearance. - Make "%lu" work with size_t arguments under Win64 (laro). +- Fix wxRegion::Offset() with shared objects (Joost Nieuwenhuijse). 3.0.0: (released 2013-11-11) diff --git a/src/msw/region.cpp b/src/msw/region.cpp index d8523a072f..846fff1e85 100644 --- a/src/msw/region.cpp +++ b/src/msw/region.cpp @@ -164,8 +164,7 @@ void wxRegion::Clear() bool wxRegion::DoOffset(wxCoord x, wxCoord y) { - const HRGN hrgn = GetHrgn(); - wxCHECK_MSG( hrgn, false, wxT("invalid wxRegion") ); + wxCHECK_MSG( GetHrgn(), false, wxT("invalid wxRegion") ); if ( !x && !y ) { @@ -175,7 +174,7 @@ bool wxRegion::DoOffset(wxCoord x, wxCoord y) AllocExclusive(); - if ( ::OffsetRgn(hrgn, x, y) == ERROR ) + if ( ::OffsetRgn(GetHrgn(), x, y) == ERROR ) { wxLogLastError(wxT("OffsetRgn"));