From 05b4e9635e25154e4d5366628ab55572f4827266 Mon Sep 17 00:00:00 2001 From: zeljko Date: Wed, 21 May 2014 17:33:45 +0000 Subject: [PATCH] Qt: another fix for StretchMaskBlt.related to issue #26004 git-svn-id: trunk@45140 - --- lcl/interfaces/qt/qtwinapi.inc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lcl/interfaces/qt/qtwinapi.inc b/lcl/interfaces/qt/qtwinapi.inc index 119c70d3b9..a2f5c2c044 100644 --- a/lcl/interfaces/qt/qtwinapi.inc +++ b/lcl/interfaces/qt/qtwinapi.inc @@ -6484,6 +6484,7 @@ var OldRop: Integer; OldBkColor: TColorRef; RestoreClip: Boolean; + AClipRect: TRect; begin {$ifdef VerboseQtWinAPI} WriteLn('[WinAPI StretchMaskBlt]', @@ -6627,7 +6628,11 @@ begin if (SrcRect.Left < DstRect.Left) or (SrcRect.Top < DstRect.Top) and DstQDC.getClipping and DstQDC.getClipRegion.containsRect(SrcRect) then begin - if DstQDC.getClipRegion.containsPoint(DstRect.Left, DstRect.Top) then + AClipRect := DstQDC.getClipRegion.getBoundingRect; + OffsetRect(AClipRect, -AClipRect.Left, -AClipRect.Top); + if (DstRect.Right - DstRect.Left <= AClipRect.Right) and + (DstRect.Bottom - DstRect.Top <= AClipRect.Bottom) and + DstQDC.getClipRegion.containsPoint(DstRect.Left, DstRect.Top) then begin RestoreClip := True; DstQDC.setClipping(False);