From eb630a0781ac0448f5ce7e82280fef8663b4d7d1 Mon Sep 17 00:00:00 2001 From: Artur Wieczorek <7330332+a-wi@users.noreply.github.com> Date: Tue, 27 Dec 2022 11:28:13 +0100 Subject: [PATCH] Fix wxDCClipper Initial clipping box needs to be stored in device coordinates to allow restoring it properly if wxDC logical coordinates were changed in the meantime. Closes #23083. --- include/wx/dc.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/wx/dc.h b/include/wx/dc.h index ca8e75e939..2610338a95 100644 --- a/include/wx/dc.h +++ b/include/wx/dc.h @@ -1510,7 +1510,7 @@ public: { m_dc.DestroyClippingRegion(); if ( m_restoreOld ) - m_dc.SetClippingRegion(m_oldClipRect); + m_dc.SetDeviceClippingRegion(m_oldClipRect); } private: @@ -1518,6 +1518,7 @@ private: void Init(const wxRect& r) { m_restoreOld = m_dc.GetClippingBox(m_oldClipRect); + m_oldClipRect = wxRect(m_dc.LogicalToDevice(m_oldClipRect.GetPosition()), m_dc.LogicalToDeviceRel(m_oldClipRect.GetSize())); m_dc.SetClippingRegion(r); }