[PATCH 1/2] gdi32/tests: Don't treat a return value of COMPLEXREGION from IntersectClipRect() as broken.
Dmitry Timoshkov
dmitry at baikal.ru
Mon Dec 30 20:12:30 CST 2019
Zebediah Figura <z.figura12 at gmail.com> wrote:
> ret = IntersectClipRect(hdc, 0, 0, 50, 50);
> - if (ret == COMPLEXREGION)
> - {
> - /* XP returns COMPLEXREGION although dump_region reports only 1 rect */
> - trace("Windows BUG: IntersectClipRect returned %d instead of SIMPLEREGION\n", ret);
> - /* let's make sure that it's a simple region */
> - ret = GetClipRgn(hdc, hrgn);
> - ok(ret == 1, "GetClipRgn returned %d instead of 1\n", ret);
> - dump_region(hrgn);
> - }
> - else
> - ok(ret == SIMPLEREGION, "IntersectClipRect returned %d instead of SIMPLEREGION\n", ret);
> + todo_wine ok(ret == COMPLEXREGION, "wrong region type %d\n", ret);
> + ret = GetClipRgn(hdc, hrgn);
> + ok(ret == 1, "GetClipRgn returned %d instead of 1\n", ret);
> + ret = GetRegionData(hrgn, sizeof(buffer), rgndata);
> + ok(ret == sizeof(RGNDATAHEADER) + sizeof(RECT), "got %u\n", ret);
> + ok(rgndata->rdh.nCount == 1, "got %u rectangles\n", rgndata->rdh.nCount);
Even if every Windows version returns broken result doesn't make it
legitimate to return COMPLEXREGION when the region contains only 1
rectangle. This is clearly broken.
--
Dmitry.
More information about the wine-devel
mailing list