diff --git a/reactos/subsystems/win32/win32k/objects/bitblt.c b/reactos/subsystems/win32/win32k/objects/bitblt.c index 4b8c58516d9..588d42abd58 100644 --- a/reactos/subsystems/win32/win32k/objects/bitblt.c +++ b/reactos/subsystems/win32/win32k/objects/bitblt.c @@ -805,7 +805,6 @@ NtGdiStretchBlt( IntGdiSelectBrush(DCDest,Dc_Attr->hbrush); /* Offset the destination and source by the origin of their DCs. */ - // FIXME: ptlDCOrig is in device coordinates! XOriginDest += DCDest->ptlDCOrig.x; YOriginDest += DCDest->ptlDCOrig.y; if (UsesSource) @@ -818,11 +817,16 @@ NtGdiStretchBlt( DestRect.top = YOriginDest; DestRect.right = XOriginDest+WidthDest; DestRect.bottom = YOriginDest+HeightDest; + IntLPtoDP(DCDest, (LPPOINT)&DestRect, 2); SourceRect.left = XOriginSrc; SourceRect.top = YOriginSrc; SourceRect.right = XOriginSrc+WidthSrc; SourceRect.bottom = YOriginSrc+HeightSrc; + if (UsesSource) + { + IntLPtoDP(DCSrc, (LPPOINT)&SourceRect, 2); + } /* Determine surfaces to be used in the bitblt */ BitmapDest = SURFACE_LockSurface(DCDest->w.hBitmap);