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;
PATH_FlattenPath(pPath);
if(pPath->state != PATH_Closed) {
ERR("Path Closed\n");
if(pPath->state == PATH_Open) {
SetLastError(ERROR_CAN_NOT_COMPLETE);
return FALSE;
}
PATH_FlattenPath(pPath);
size = GetObjectW( dc->hPen, 0, NULL );
if (!size) return FALSE;

View File

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