diff --git a/win32ss/gdi/ntgdi/fillshap.c b/win32ss/gdi/ntgdi/fillshap.c index c01ae97d7b6..8f50548e374 100644 --- a/win32ss/gdi/ntgdi/fillshap.c +++ b/win32ss/gdi/ntgdi/fillshap.c @@ -954,7 +954,7 @@ GreGradientFill( BOOL bRet; /* Check parameters */ - if (ulMode & GRADIENT_FILL_TRIANGLE) + if (ulMode == GRADIENT_FILL_TRIANGLE) { PGRADIENT_TRIANGLE pTriangle = (PGRADIENT_TRIANGLE)pMesh; @@ -1020,6 +1020,18 @@ GreGradientFill( return TRUE; } + /* Offset vertex for rectangles */ + if (ulMode == GRADIENT_FILL_RECT_H || + ulMode == GRADIENT_FILL_RECT_V) + { + for (i = 0; i < nVertex; i++) + { + IntLPtoDP(pdc, (LPPOINT)&pVertex[i], 1); + pVertex[i].x += pdc->ptlDCOrig.x; + pVertex[i].y += pdc->ptlDCOrig.y; + } + } + ptlDitherOrg.x = ptlDitherOrg.y = 0; IntLPtoDP(pdc, (LPPOINT)&ptlDitherOrg, 1);