Commit 47b89a8f authored by Dmitry Timoshkov's avatar Dmitry Timoshkov Committed by Alexandre Julliard

gdi32: IntersectClipRect should update actual clipping region for a EMF DC.

parent 756736ae
...@@ -169,14 +169,18 @@ INT EMFDRV_ExcludeClipRect( PHYSDEV dev, INT left, INT top, INT right, INT botto ...@@ -169,14 +169,18 @@ INT EMFDRV_ExcludeClipRect( PHYSDEV dev, INT left, INT top, INT right, INT botto
INT EMFDRV_IntersectClipRect( PHYSDEV dev, INT left, INT top, INT right, INT bottom) INT EMFDRV_IntersectClipRect( PHYSDEV dev, INT left, INT top, INT right, INT bottom)
{ {
PHYSDEV next = GET_NEXT_PHYSDEV( dev, pIntersectClipRect );
EMRINTERSECTCLIPRECT emr; EMRINTERSECTCLIPRECT emr;
BOOL ret;
emr.emr.iType = EMR_INTERSECTCLIPRECT; emr.emr.iType = EMR_INTERSECTCLIPRECT;
emr.emr.nSize = sizeof(emr); emr.emr.nSize = sizeof(emr);
emr.rclClip.left = left; emr.rclClip.left = left;
emr.rclClip.top = top; emr.rclClip.top = top;
emr.rclClip.right = right; emr.rclClip.right = right;
emr.rclClip.bottom = bottom; emr.rclClip.bottom = bottom;
return EMFDRV_WriteRecord( dev, &emr.emr ); ret = EMFDRV_WriteRecord( dev, &emr.emr );
return ret ? next->funcs->pIntersectClipRect( next, left, top, right, bottom ) : ERROR;
} }
INT EMFDRV_OffsetClipRgn( PHYSDEV dev, INT x, INT y ) INT EMFDRV_OffsetClipRgn( PHYSDEV dev, INT x, INT y )
......
...@@ -2511,7 +2511,6 @@ static void test_emf_clipping(void) ...@@ -2511,7 +2511,6 @@ static void test_emf_clipping(void)
rc_res.left, rc_res.top, rc_res.right, rc_res.bottom); rc_res.left, rc_res.top, rc_res.right, rc_res.bottom);
ret = IntersectClipRect(hdc, 0, 0, 100, 100); ret = IntersectClipRect(hdc, 0, 0, 100, 100);
todo_wine
ok(ret == SIMPLEREGION || broken(ret == COMPLEXREGION) /* XP */, "got %d\n", ret); ok(ret == SIMPLEREGION || broken(ret == COMPLEXREGION) /* XP */, "got %d\n", ret);
if (ret == COMPLEXREGION) if (ret == COMPLEXREGION)
{ {
...@@ -2524,7 +2523,6 @@ todo_wine ...@@ -2524,7 +2523,6 @@ todo_wine
SetRect(&rc_res, -1, -1, -1, -1); SetRect(&rc_res, -1, -1, -1, -1);
ret = GetClipBox(hdc, &rc_res); ret = GetClipBox(hdc, &rc_res);
ok(ret == SIMPLEREGION, "got %d\n", ret); ok(ret == SIMPLEREGION, "got %d\n", ret);
todo_wine
ok(EqualRect(&rc_res, &rc), ok(EqualRect(&rc_res, &rc),
"expected (%d,%d)-(%d,%d), got (%d,%d)-(%d,%d)\n", "expected (%d,%d)-(%d,%d), got (%d,%d)-(%d,%d)\n",
rc.left, rc.top, rc.right, rc.bottom, rc.left, rc.top, rc.right, rc.bottom,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment