Piotr Caban : user32: Switch to normal window drawing on SetLayeredWindowAttributes call.

Alexandre Julliard julliard at winehq.org
Wed Apr 19 14:49:39 CDT 2017


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Tue Apr 18 18:43:19 2017 +0200

user32: Switch to normal window drawing on SetLayeredWindowAttributes call.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/user32/win.c         | 6 +++++-
 dlls/winemac.drv/window.c | 2 ++
 dlls/winex11.drv/window.c | 2 ++
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/dlls/user32/win.c b/dlls/user32/win.c
index 5c27a01..560fbc5 100644
--- a/dlls/user32/win.c
+++ b/dlls/user32/win.c
@@ -3749,7 +3749,11 @@ BOOL WINAPI SetLayeredWindowAttributes( HWND hwnd, COLORREF key, BYTE alpha, DWO
     }
     SERVER_END_REQ;
 
-    if (ret) USER_Driver->pSetLayeredWindowAttributes( hwnd, key, alpha, flags );
+    if (ret)
+    {
+        USER_Driver->pSetLayeredWindowAttributes( hwnd, key, alpha, flags );
+        update_window_state( hwnd );
+    }
 
     return ret;
 }
diff --git a/dlls/winemac.drv/window.c b/dlls/winemac.drv/window.c
index e07507b..878b4dc 100644
--- a/dlls/winemac.drv/window.c
+++ b/dlls/winemac.drv/window.c
@@ -1561,6 +1561,8 @@ void CDECL macdrv_SetLayeredWindowAttributes(HWND hwnd, COLORREF key, BYTE alpha
     if (data)
     {
         data->layered = TRUE;
+        data->ulw_layered = FALSE;
+        if (data->surface) set_surface_use_alpha(data->surface, FALSE);
         if (data->cocoa_window)
         {
             sync_window_opacity(data, key, alpha, FALSE, flags);
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index 7408a0e..ea4933f 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -2535,6 +2535,8 @@ void CDECL X11DRV_SetLayeredWindowAttributes( HWND hwnd, COLORREF key, BYTE alph
 
     if (data)
     {
+        set_window_visual( data, &default_visual );
+
         if (data->whole_window)
             sync_window_opacity( data->display, data->whole_window, key, alpha, flags );
         if (data->surface)




More information about the wine-cvs mailing list