user32: pass mouse messages through layered windows with WS_EX_TRANSPARENT ex-style to other windows underneath.

Rein Klazes wijn at online.nl
Fri Aug 21 03:47:51 CDT 2009


As specified by MSDN.

Fixes bug #15500
---
 dlls/user32/message.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/dlls/user32/message.c b/dlls/user32/message.c
index 4153094..c4c4f88 100644
--- a/dlls/user32/message.c
+++ b/dlls/user32/message.c
@@ -1800,6 +1800,10 @@ static BOOL process_mouse_message( MSG *msg, UINT hw_id, ULONG_PTR extra_info, H
     }
     else
     {
+        /* pass mouse messages through layered windows with WS_EX_TRANSPARENT ex-style */
+        if( (GetWindowLongW( msg->hwnd, GWL_EXSTYLE ) & (WS_EX_LAYERED | WS_EX_TRANSPARENT)) ==
+                (WS_EX_LAYERED | WS_EX_TRANSPARENT))
+            msg->hwnd = NULL;
         msg->hwnd = WINPOS_WindowFromPoint( msg->hwnd, msg->pt, &hittest );
     }
 
-- 
1.6.3.3




More information about the wine-patches mailing list