- 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, IntGdiMoveToEx(DC *dc,
int X, int X,
int Y, int Y,
LPPOINT Point); LPPOINT Point,
BOOL BypassPath);
BOOL FASTCALL BOOL FASTCALL
IntGdiPolyBezier(DC *dc, IntGdiPolyBezier(DC *dc,

View file

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

View file

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

View file

@ -1491,7 +1491,7 @@ end:
POINT pt; POINT pt;
IntGetCurrentPositionEx(dc, &pt); IntGetCurrentPositionEx(dc, &pt);
IntDPtoLP(dc, &pt, 1); 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); DPRINT("Leave %s, ret=%d\n", __FUNCTION__, ret);
return ret; return ret;