Commit 62019e6d authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

user32: Intersect with passed dirty rectangle while blitting.

parent 9b7b3ef1
...@@ -3392,18 +3392,18 @@ BOOL WINAPI UpdateLayeredWindowIndirect( HWND hwnd, const UPDATELAYEREDWINDOWINF ...@@ -3392,18 +3392,18 @@ BOOL WINAPI UpdateLayeredWindowIndirect( HWND hwnd, const UPDATELAYEREDWINDOWINF
cy = info->psize->cy; cy = info->psize->cy;
flags &= ~SWP_NOSIZE; flags &= ~SWP_NOSIZE;
} }
TRACE( "moving window %p pos %d,%d %dx%x\n", hwnd, x, y, cx, cy ); TRACE( "moving window %p pos %d,%d %dx%d\n", hwnd, x, y, cx, cy );
SetWindowPos( hwnd, 0, x, y, cx, cy, flags ); SetWindowPos( hwnd, 0, x, y, cx, cy, flags );
} }
if (info->hdcSrc) if (info->hdcSrc)
{ {
RECT rect;
HDC hdc = GetDCEx( hwnd, 0, DCX_CACHE ); HDC hdc = GetDCEx( hwnd, 0, DCX_CACHE );
if (hdc) if (hdc)
{ {
int x = 0, y = 0; int x = 0, y = 0;
RECT rect;
GetClientRect( hwnd, &rect ); GetClientRect( hwnd, &rect );
if (info->pptSrc) if (info->pptSrc)
...@@ -3411,10 +3411,13 @@ BOOL WINAPI UpdateLayeredWindowIndirect( HWND hwnd, const UPDATELAYEREDWINDOWINF ...@@ -3411,10 +3411,13 @@ BOOL WINAPI UpdateLayeredWindowIndirect( HWND hwnd, const UPDATELAYEREDWINDOWINF
x = info->pptSrc->x; x = info->pptSrc->x;
y = info->pptSrc->y; y = info->pptSrc->y;
} }
/* FIXME: intersect rect with info->prcDirty */
TRACE( "copying window %p pos %d,%d\n", hwnd, x, y ); if (!info->prcDirty || (info->prcDirty && IntersectRect(&rect, &rect, info->prcDirty)))
BitBlt( hdc, rect.left, rect.top, rect.right, rect.bottom, {
info->hdcSrc, rect.left + x, rect.top + y, SRCCOPY ); TRACE( "copying window %p pos %d,%d\n", hwnd, x, y );
BitBlt( hdc, rect.left, rect.top, rect.right, rect.bottom,
info->hdcSrc, rect.left + x, rect.top + y, SRCCOPY );
}
ReleaseDC( hwnd, hdc ); ReleaseDC( hwnd, hdc );
} }
} }
......
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