diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index 964fa9f02c9..894503e0434 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);