Use whole window rectangle for UpdateLayeredWindow

Nikolay Sivov nsivov at codeweavers.com
Wed Feb 24 04:22:31 CST 2010


---
 dlls/user32/win.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/dlls/user32/win.c b/dlls/user32/win.c
index 8ed49d8..757ff92 100644
--- a/dlls/user32/win.c
+++ b/dlls/user32/win.c
@@ -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 );
             }
             ReleaseDC( hwnd, hdc );
         }
-- 
1.5.6.5


--=-pgqXTkYSFJtAHsRv2gzt--




More information about the wine-patches mailing list