- Fix regressions in FF and OOo.

svn path=/trunk/; revision=44797
This commit is contained in:
James Tabor 2009-12-28 18:41:31 +00:00
parent 91cbcdc152
commit 926a83116a

View file

@ -22,7 +22,6 @@
If the rects are overlapping and not normalized or displace in different areas, If the rects are overlapping and not normalized or displace in different areas,
it's DIFF_RGN. it's DIFF_RGN.
*/ */
static
INT INT
FASTCALL FASTCALL
ComplexityFromRects( PRECTL prc1, PRECTL prc2) ComplexityFromRects( PRECTL prc1, PRECTL prc2)
@ -205,6 +204,7 @@ CombineRgn(HRGN hDest,
HRGN hSrc2, HRGN hSrc2,
INT CombineMode) INT CombineMode)
{ {
#if 0
PRGN_ATTR pRgn_Attr_Dest = NULL; PRGN_ATTR pRgn_Attr_Dest = NULL;
PRGN_ATTR pRgn_Attr_Src1 = NULL; PRGN_ATTR pRgn_Attr_Src1 = NULL;
PRGN_ATTR pRgn_Attr_Src2 = NULL; PRGN_ATTR pRgn_Attr_Src2 = NULL;
@ -218,8 +218,9 @@ CombineRgn(HRGN hDest,
!pRgn_Attr_Dest || !pRgn_Attr_Dest ||
!pRgn_Attr_Src1 || !pRgn_Attr_Src1 ||
pRgn_Attr_Src1->Flags > SIMPLEREGION ) pRgn_Attr_Src1->Flags > SIMPLEREGION )
#endif
return NtGdiCombineRgn(hDest, hSrc1, hSrc2, CombineMode); return NtGdiCombineRgn(hDest, hSrc1, hSrc2, CombineMode);
#if 0
/* Handle COPY and use only src1. */ /* Handle COPY and use only src1. */
if ( CombineMode == RGN_COPY ) if ( CombineMode == RGN_COPY )
{ {
@ -388,6 +389,7 @@ ERROR_Exit:
/* Even on error the flag is set dirty and force server side to redraw. */ /* Even on error the flag is set dirty and force server side to redraw. */
pRgn_Attr_Dest->AttrFlags |= ATTR_RGN_DIRTY; pRgn_Attr_Dest->AttrFlags |= ATTR_RGN_DIRTY;
return ERROR; return ERROR;
#endif
} }
/* /*
@ -438,6 +440,10 @@ CreateRectRgn(int x1, int y1, int x2, int y2)
HRGN hrgn; HRGN hrgn;
int x, y; int x, y;
//// Remove when Brush/Pen/Rgn Attr is ready!
return NtGdiCreateRectRgn(x1,y1,x2,y2);
////
/* Normalize points */ /* Normalize points */
x = x1; x = x1;
if ( x1 > x2 ) if ( x1 > x2 )
@ -461,12 +467,10 @@ CreateRectRgn(int x1, int y1, int x2, int y2)
SetLastError(ERROR_INVALID_PARAMETER); SetLastError(ERROR_INVALID_PARAMETER);
return NULL; return NULL;
} }
//// Remove when Brush/Pen/Rgn Attr is ready!
return NtGdiCreateRectRgn(x1,y1,x2,y2);
////
hrgn = hGetPEBHandle(hctRegionHandle, 0);
if (!hrgn) // hrgn = hGetPEBHandle(hctRegionHandle, 0);
// if (!hrgn)
hrgn = NtGdiCreateRectRgn(0, 0, 1, 1); hrgn = NtGdiCreateRectRgn(0, 0, 1, 1);
if (!hrgn) if (!hrgn)
@ -633,11 +637,13 @@ WINAPI
GetRgnBox(HRGN hrgn, GetRgnBox(HRGN hrgn,
LPRECT prcOut) LPRECT prcOut)
{ {
#if 0
PRGN_ATTR Rgn_Attr; PRGN_ATTR Rgn_Attr;
if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &Rgn_Attr)) if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &Rgn_Attr))
#endif
return NtGdiGetRgnBox(hrgn, prcOut); return NtGdiGetRgnBox(hrgn, prcOut);
#if 0
if (Rgn_Attr->Flags == NULLREGION) if (Rgn_Attr->Flags == NULLREGION)
{ {
prcOut->left = 0; prcOut->left = 0;
@ -653,6 +659,7 @@ GetRgnBox(HRGN hrgn,
RtlCopyMemory( prcOut, &Rgn_Attr->Rect, sizeof(RECT)); RtlCopyMemory( prcOut, &Rgn_Attr->Rect, sizeof(RECT));
} }
return Rgn_Attr->Flags; return Rgn_Attr->Flags;
#endif
} }
/* /*
@ -743,12 +750,14 @@ OffsetRgn( HRGN hrgn,
int nXOffset, int nXOffset,
int nYOffset) int nYOffset)
{ {
#if 0
PRGN_ATTR pRgn_Attr; PRGN_ATTR pRgn_Attr;
int nLeftRect, nTopRect, nRightRect, nBottomRect; int nLeftRect, nTopRect, nRightRect, nBottomRect;
if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &pRgn_Attr)) if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &pRgn_Attr))
#endif
return NtGdiOffsetRgn(hrgn,nXOffset,nYOffset); return NtGdiOffsetRgn(hrgn,nXOffset,nYOffset);
#if 0
if ( pRgn_Attr->Flags == NULLREGION) if ( pRgn_Attr->Flags == NULLREGION)
return pRgn_Attr->Flags; return pRgn_Attr->Flags;
@ -790,6 +799,7 @@ OffsetRgn( HRGN hrgn,
} }
} }
return pRgn_Attr->Flags; return pRgn_Attr->Flags;
#endif
} }
/* /*
@ -801,11 +811,13 @@ PtInRegion(IN HRGN hrgn,
int x, int x,
int y) int y)
{ {
#if 0
PRGN_ATTR pRgn_Attr; PRGN_ATTR pRgn_Attr;
if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &pRgn_Attr)) if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &pRgn_Attr))
#endif
return NtGdiPtInRegion(hrgn,x,y); return NtGdiPtInRegion(hrgn,x,y);
#if 0
if ( pRgn_Attr->Flags == NULLREGION) if ( pRgn_Attr->Flags == NULLREGION)
return FALSE; return FALSE;
@ -813,6 +825,7 @@ PtInRegion(IN HRGN hrgn,
return NtGdiPtInRegion(hrgn,x,y); return NtGdiPtInRegion(hrgn,x,y);
return INRECT( pRgn_Attr->Rect, x, y); return INRECT( pRgn_Attr->Rect, x, y);
#endif
} }
/* /*
@ -823,12 +836,14 @@ WINAPI
RectInRegion(HRGN hrgn, RectInRegion(HRGN hrgn,
LPCRECT prcl) LPCRECT prcl)
{ {
#if 0
PRGN_ATTR pRgn_Attr; PRGN_ATTR pRgn_Attr;
RECTL rc; RECTL rc;
if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &pRgn_Attr)) if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &pRgn_Attr))
#endif
return NtGdiRectInRegion(hrgn, (LPRECT) prcl); return NtGdiRectInRegion(hrgn, (LPRECT) prcl);
#if 0
if ( pRgn_Attr->Flags == NULLREGION) if ( pRgn_Attr->Flags == NULLREGION)
return FALSE; return FALSE;
@ -862,6 +877,7 @@ RectInRegion(HRGN hrgn,
return TRUE; return TRUE;
return FALSE; return FALSE;
#endif
} }
/* /*
@ -887,11 +903,13 @@ SetRectRgn(HRGN hrgn,
int nRightRect, int nRightRect,
int nBottomRect) int nBottomRect)
{ {
#if 0
PRGN_ATTR Rgn_Attr; PRGN_ATTR Rgn_Attr;
if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &Rgn_Attr)) if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &Rgn_Attr))
#endif
return NtGdiSetRectRgn(hrgn, nLeftRect, nTopRect, nRightRect, nBottomRect); return NtGdiSetRectRgn(hrgn, nLeftRect, nTopRect, nRightRect, nBottomRect);
#if 0
if ((nLeftRect == nRightRect) || (nTopRect == nBottomRect)) if ((nLeftRect == nRightRect) || (nTopRect == nBottomRect))
{ {
Rgn_Attr->AttrFlags |= ATTR_RGN_DIRTY; Rgn_Attr->AttrFlags |= ATTR_RGN_DIRTY;
@ -920,6 +938,7 @@ SetRectRgn(HRGN hrgn,
Rgn_Attr->AttrFlags |= ATTR_RGN_DIRTY ; Rgn_Attr->AttrFlags |= ATTR_RGN_DIRTY ;
Rgn_Attr->Flags = SIMPLEREGION; Rgn_Attr->Flags = SIMPLEREGION;
return TRUE; return TRUE;
#endif
} }
/* /*