Use IntLPtoDP instead of NtGdiLPtoDP since kernel addresses are passed

svn path=/trunk/; revision=7559
This commit is contained in:
Gé van Geldorp 2004-01-10 21:59:05 +00:00
parent 449966544c
commit ad5496bb9b

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *
* $Id: painting.c,v 1.57 2003/12/30 18:19:20 weiden Exp $ * $Id: painting.c,v 1.58 2004/01/10 21:59:05 gvg Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -798,6 +798,7 @@ NtUserBeginPaint(HWND hWnd, PAINTSTRUCT* lPs)
RECT ClientRect; RECT ClientRect;
RECT ClipRect; RECT ClipRect;
INT DcxFlags; INT DcxFlags;
PDC DC;
if (!(Window = IntGetWindowObject(hWnd))) if (!(Window = IntGetWindowObject(hWnd)))
{ {
@ -838,7 +839,14 @@ NtUserBeginPaint(HWND hWnd, PAINTSTRUCT* lPs)
IntGetClientRect(Window, &ClientRect); IntGetClientRect(Window, &ClientRect);
IntGdiGetClipBox(lPs->hdc, &ClipRect); IntGdiGetClipBox(lPs->hdc, &ClipRect);
NtGdiLPtoDP(lPs->hdc, (LPPOINT)&ClipRect, 2); DC = DC_LockDc(lPs->hdc);
if (NULL == DC)
{
IntReleaseWindowObject(Window);
return NULL;
}
IntLPtoDP(DC, (LPPOINT)&ClipRect, 2);
DC_UnlockDc(lPs->hdc);
NtGdiIntersectRect(&lPs->rcPaint, &ClientRect, &ClipRect); NtGdiIntersectRect(&lPs->rcPaint, &ClientRect, &ClipRect);
NtGdiDPtoLP(lPs->hdc, (LPPOINT)&lPs->rcPaint, 2); NtGdiDPtoLP(lPs->hdc, (LPPOINT)&lPs->rcPaint, 2);
@ -1049,30 +1057,37 @@ NtUserScrollDC(HDC hDC, INT dx, INT dy, const RECT *lprcScroll,
const RECT *lprcClip, HRGN hrgnUpdate, LPRECT lprcUpdate) const RECT *lprcClip, HRGN hrgnUpdate, LPRECT lprcUpdate)
{ {
RECT rSrc, rClipped_src, rClip, rDst, offset; RECT rSrc, rClipped_src, rClip, rDst, offset;
PDC DC;
/* /*
* Compute device clipping region (in device coordinates). * Compute device clipping region (in device coordinates).
*/ */
DC = DC_LockDc(hDC);
if (NULL == DC)
{
return FALSE;
}
if (lprcScroll) if (lprcScroll)
rSrc = *lprcScroll; rSrc = *lprcScroll;
else else
IntGdiGetClipBox(hDC, &rSrc); IntGdiGetClipBox(hDC, &rSrc);
NtGdiLPtoDP(hDC, (LPPOINT)&rSrc, 2); IntLPtoDP(DC, (LPPOINT)&rSrc, 2);
if (lprcClip) if (lprcClip)
rClip = *lprcClip; rClip = *lprcClip;
else else
IntGdiGetClipBox(hDC, &rClip); IntGdiGetClipBox(hDC, &rClip);
NtGdiLPtoDP(hDC, (LPPOINT)&rClip, 2); IntLPtoDP(DC, (LPPOINT)&rClip, 2);
NtGdiIntersectRect(&rClipped_src, &rSrc, &rClip); NtGdiIntersectRect(&rClipped_src, &rSrc, &rClip);
rDst = rClipped_src; rDst = rClipped_src;
NtGdiSetRect(&offset, 0, 0, dx, dy); NtGdiSetRect(&offset, 0, 0, dx, dy);
NtGdiLPtoDP(hDC, (LPPOINT)&offset, 2); IntLPtoDP(DC, (LPPOINT)&offset, 2);
NtGdiOffsetRect(&rDst, offset.right - offset.left, offset.bottom - offset.top); NtGdiOffsetRect(&rDst, offset.right - offset.left, offset.bottom - offset.top);
NtGdiIntersectRect(&rDst, &rDst, &rClip); NtGdiIntersectRect(&rDst, &rDst, &rClip);
DC_UnlockDc(hDC);
/* /*
* Copy bits, if possible. * Copy bits, if possible.