From 6df88346a18d9f616dbd918a19edf4dbb91b51f0 Mon Sep 17 00:00:00 2001 From: paul Date: Fri, 1 May 2009 15:35:49 +0000 Subject: [PATCH] lcl: fix TCanvas.SetClipping, check Clipping in SetClipRect (issue #0013418) git-svn-id: trunk@19742 - --- lcl/include/canvas.inc | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/lcl/include/canvas.inc b/lcl/include/canvas.inc index d734225cc0..ebd935e826 100644 --- a/lcl/include/canvas.inc +++ b/lcl/include/canvas.inc @@ -70,10 +70,17 @@ var RGN: HRGN; begin inherited SetClipRect(ARect); - with ARect do - RGN := CreateRectRGN(Left, Top, Right, Bottom); - SelectClipRGN(Handle, RGN); - DeleteObject(RGN); + {$ifdef OverrideClipping} + if inherited GetClipping then + {$else} + if inherited Clipping then + {$endif} + begin + with ARect do + RGN := CreateRectRGN(Left, Top, Right, Bottom); + SelectClipRGN(Handle, RGN); + DeleteObject(RGN); + end; end; function TCanvas.GetClipping: Boolean; @@ -85,7 +92,11 @@ end; procedure TCanvas.SetClipping(const AValue: boolean); begin + {$ifdef OverrideClipping} + inherited SetClipping(AValue); + {$else} inherited Clipping := AValue; + {$endif} if AValue then SetClipRect(inherited GetClipRect) else