Nikolay Sivov <nsi...@codeweavers.com> writes: > @@ -3398,14 +3398,14 @@ BOOL WINAPI UpdateLayeredWindowIndirect( HWND hwnd, > const UPDATELAYEREDWINDOWINF > > if (info->hdcSrc) > { > - HDC hdc = GetDCEx( hwnd, 0, DCX_CACHE ); > + HDC hdc = GetWindowDC( hwnd ); > > if (hdc) > { > int x = 0, y = 0; > RECT rect; > > - GetClientRect( hwnd, &rect ); > + GetWindowRect( hwnd, &rect ); > if (info->pptSrc) > { > x = info->pptSrc->x; > @@ -3415,8 +3415,8 @@ BOOL WINAPI UpdateLayeredWindowIndirect( HWND hwnd, > const UPDATELAYEREDWINDOWINF > if (!info->prcDirty || (info->prcDirty && IntersectRect(&rect, > &rect, info->prcDirty))) > { > 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 ); > + BitBlt( hdc, 0, 0, rect.right - rect.left, rect.bottom - > rect.top, > + info->hdcSrc, x, y, SRCCOPY );
Shouldn't you map prcDirty to window coordinates before intersecting? -- Alexandre Julliard julli...@winehq.org