- Add a bypass flag to skip the Path support in IntGdiMoveToEx. See bug report 4364. This fixes 11 gdi path wine tests.

svn path=/trunk/; revision=44507
This commit is contained in:
James Tabor 2009-12-10 01:18:26 +00:00
parent 9dae13cb9a
commit ae95dea153
4 changed files with 11 additions and 7 deletions

View file

@ -67,7 +67,8 @@ BOOL FASTCALL
IntGdiMoveToEx(DC *dc,
int X,
int Y,
LPPOINT Point);
LPPOINT Point,
BOOL BypassPath);
BOOL FASTCALL
IntGdiPolyBezier(DC *dc,

View file

@ -247,9 +247,9 @@ IntGdiArcInternal(
if (arctype == GdiTypeArcTo)
{
if (dc->dclevel.flPath & DCPATH_CLOCKWISE)
IntGdiMoveToEx(dc, XStartArc, YStartArc, NULL);
IntGdiMoveToEx(dc, XStartArc, YStartArc, NULL, TRUE);
else
IntGdiMoveToEx(dc, XEndArc, YEndArc, NULL);
IntGdiMoveToEx(dc, XEndArc, YEndArc, NULL, TRUE);
}
return Ret;
}
@ -294,7 +294,7 @@ IntGdiAngleArc( PDC pDC,
if (result)
{
IntGdiMoveToEx(pDC, x2, y2, NULL); // Dont forget Path.
IntGdiMoveToEx(pDC, x2, y2, NULL, TRUE);
}
return result;
}

View file

@ -30,7 +30,8 @@ BOOL FASTCALL
IntGdiMoveToEx(DC *dc,
int X,
int Y,
LPPOINT Point)
LPPOINT Point,
BOOL BypassPath)
{
BOOL PathIsOpen;
PDC_ATTR pdcattr = dc->pdcattr;
@ -54,6 +55,8 @@ IntGdiMoveToEx(DC *dc,
CoordLPtoDP(dc, &pdcattr->ptfxCurrent); // Update fx
pdcattr->ulDirty_ &= ~(DIRTY_PTLCURRENT|DIRTY_PTFXCURRENT|DIRTY_STYLESTATE);
if (BypassPath) return TRUE;
PathIsOpen = PATH_IsPathOpen(dc->dclevel);
if ( PathIsOpen )
@ -437,7 +440,7 @@ NtGdiPolyDraw(
{
if ( lpbTypes[i] == PT_MOVETO )
{
IntGdiMoveToEx( dc, lppt[i].x, lppt[i].y, NULL );
IntGdiMoveToEx( dc, lppt[i].x, lppt[i].y, NULL, FALSE );
lastmove.x = pdcattr->ptlCurrent.x;
lastmove.y = pdcattr->ptlCurrent.y;
}

View file

@ -1491,7 +1491,7 @@ end:
POINT pt;
IntGetCurrentPositionEx(dc, &pt);
IntDPtoLP(dc, &pt, 1);
IntGdiMoveToEx(dc, pt.x, pt.y, NULL);
IntGdiMoveToEx(dc, pt.x, pt.y, NULL, FALSE);
}
DPRINT("Leave %s, ret=%d\n", __FUNCTION__, ret);
return ret;