gdi32: Correct WidenPath behaviour when working on an open path.

This commit is contained in:
Laurent Vromman 2007-04-03 07:45:40 +02:00 committed by Alexandre Julliard
parent 525fd82366
commit 932c6f5bdd
2 changed files with 12 additions and 11 deletions

View file

@ -1778,13 +1778,13 @@ static BOOL PATH_WidenPath(DC *dc)
pPath = &dc->path; pPath = &dc->path;
PATH_FlattenPath(pPath); if(pPath->state == PATH_Open) {
SetLastError(ERROR_CAN_NOT_COMPLETE);
if(pPath->state != PATH_Closed) {
ERR("Path Closed\n");
return FALSE; return FALSE;
} }
PATH_FlattenPath(pPath);
size = GetObjectW( dc->hPen, 0, NULL ); size = GetObjectW( dc->hPen, 0, NULL );
if (!size) return FALSE; if (!size) return FALSE;

View file

@ -35,7 +35,8 @@ static void test_widenpath(void)
HPEN greenPen, narrowPen; HPEN greenPen, narrowPen;
HPEN oldPen; HPEN oldPen;
POINT pnt[6]; POINT pnt[6];
INT nSize; INT nSize, ret;
DWORD error;
/* Create a pen to be used in WidenPath */ /* Create a pen to be used in WidenPath */
greenPen = CreatePen(PS_SOLID, 10, RGB(0,0,0)); greenPen = CreatePen(PS_SOLID, 10, RGB(0,0,0));
@ -70,12 +71,12 @@ static void test_widenpath(void)
AbortPath(hdc); AbortPath(hdc);
todo_wine { /* Test WidenPath with an open path */
/* Test WidenPath with an empty path */ SetLastError(0xdeadbeef);
SetLastError(0xdeadbeef); BeginPath(hdc);
BeginPath(hdc); ret = WidenPath(hdc);
ok(WidenPath(hdc) == FALSE, "WidenPath fails while widening an empty path. Error : %d\n", GetLastError()); error = GetLastError();
} ok(ret == FALSE && GetLastError() == ERROR_CAN_NOT_COMPLETE, "WidenPath fails while widening an open path. Return value is %d, should be %d. Error is %08x, should be %08x\n", ret, FALSE, GetLastError(), ERROR_CAN_NOT_COMPLETE);
AbortPath(hdc); AbortPath(hdc);