Alexandre Julliard : winex11: Fix SetLayeredWindowAttributes when called on a thread that doesn' t have any window.

Alexandre Julliard julliard at winehq.org
Mon Sep 22 07:04:50 CDT 2008


Module: wine
Branch: master
Commit: fb84ba59d91dcb7ee0d0ca8da6b7e15c7dfbfa6a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=fb84ba59d91dcb7ee0d0ca8da6b7e15c7dfbfa6a

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Sep 22 12:52:53 2008 +0200

winex11: Fix SetLayeredWindowAttributes when called on a thread that doesn't have any window.

---

 dlls/winex11.drv/window.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index 4c03b4a..b9b2059 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -2204,9 +2204,18 @@ int X11DRV_SetWindowRgn( HWND hwnd, HRGN hrgn, BOOL redraw )
  */
 void X11DRV_SetLayeredWindowAttributes( HWND hwnd, COLORREF key, BYTE alpha, DWORD flags )
 {
-    Window win = X11DRV_get_whole_window( hwnd );
+    struct x11drv_win_data *data = X11DRV_get_win_data( hwnd );
 
-    if (win) sync_window_opacity( thread_display(), win, key, alpha, flags );
+    if (data)
+    {
+        if (data->whole_window)
+            sync_window_opacity( thread_display(), data->whole_window, key, alpha, flags );
+    }
+    else
+    {
+        Window win = X11DRV_get_whole_window( hwnd );
+        if (win) sync_window_opacity( gdi_display, win, key, alpha, flags );
+    }
 }
 
 




More information about the wine-cvs mailing list