Module: wine Branch: master Commit: 3fd47e1be1dff3f27b060045abaf1e0f4eae2fad URL: http://source.winehq.org/git/wine.git/?a=commit;h=3fd47e1be1dff3f27b060045ab...
Author: Vincent Povirk vincent@codeweavers.com Date: Mon Sep 19 15:07:00 2016 -0500
gdiplus: Add clipping to GDI32_GdipFillRegion.
Signed-off-by: Vincent Povirk vincent@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/gdiplus/graphics.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index 4ae1f48..964fa9f 100644 --- a/dlls/gdiplus/graphics.c +++ b/dlls/gdiplus/graphics.c @@ -3942,6 +3942,23 @@ static GpStatus GDI32_GdipFillRegion(GpGraphics* graphics, GpBrush* brush,
ExtSelectClipRgn(graphics->hdc, hrgn, RGN_AND);
+ DeleteObject(hrgn); + + hrgn = NULL; + status = get_clip_hrgn(graphics, &hrgn); + + if (status != Ok) + { + RestoreDC(graphics->hdc, save_state); + return status; + } + + if (hrgn) + { + ExtSelectClipRgn(graphics->hdc, hrgn, RGN_AND); + DeleteObject(hrgn); + } + if (GetClipBox(graphics->hdc, &rc) != NULLREGION) { BeginPath(graphics->hdc); @@ -3953,7 +3970,6 @@ static GpStatus GDI32_GdipFillRegion(GpGraphics* graphics, GpBrush* brush,
RestoreDC(graphics->hdc, save_state);
- DeleteObject(hrgn);
return Ok; }