Module: wine Branch: master Commit: c6afa50db6fb2fefcd349a52728cea2479bf0392 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c6afa50db6fb2fefcd349a5272...
Author: Vincent Povirk vincent@codeweavers.com Date: Mon Sep 19 15:07:01 2016 -0500
gdiplus: Add clipping to GDI32_GdipDrawDriverString.
Signed-off-by: Vincent Povirk vincent@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/gdiplus/graphics.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index 964fa9f..894503e 100644 --- a/dlls/gdiplus/graphics.c +++ b/dlls/gdiplus/graphics.c @@ -6321,6 +6321,8 @@ static GpStatus GDI32_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UINT1 GpPointF pt; HFONT hfont; UINT eto_flags=0; + GpStatus status; + HRGN hrgn;
if (flags & unsupported_flags) FIXME("Ignoring flags %x\n", flags & unsupported_flags); @@ -6332,6 +6334,14 @@ static GpStatus GDI32_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UINT1 SetBkMode(graphics->hdc, TRANSPARENT); SetTextColor(graphics->hdc, get_gdi_brush_color(brush));
+ status = get_clip_hrgn(graphics, &hrgn); + + if (status == Ok && hrgn) + { + ExtSelectClipRgn(graphics->hdc, hrgn, RGN_AND); + DeleteObject(hrgn); + } + pt = positions[0]; GdipTransformPoints(graphics, CoordinateSpaceDevice, CoordinateSpaceWorld, &pt, 1);