#1: WM_PARENTNOTIFY should not be sent to WS_POPUP windows

Dmitry Timoshkov dmitry at baikal.ru
Thu Apr 1 08:41:26 CST 2004


Hello,

this is the very first patch in the group of patches fixing various
aspects of window creation/positioning behaviour.

Tests for all these fixes are sent in the patch #7.

Changelog:
    Dmitry Timoshkov <dmitry at codeweavers.com>
    WM_PARENTNOTIFY should not be sent to WS_POPUP windows.

--- cvs/hq/wine/windows/win.c	2004-04-01 22:38:54.000000000 +0900
+++ wine/windows/win.c	2004-04-01 22:40:00.000000000 +0900
@@ -197,10 +197,10 @@ static HWND *list_window_children( HWND 
  */
 static void send_parent_notify( HWND hwnd, UINT msg )
 {
-    if (!(GetWindowLongW( hwnd, GWL_STYLE ) & WS_CHILD)) return;
-    if (GetWindowLongW( hwnd, GWL_EXSTYLE ) & WS_EX_NOPARENTNOTIFY) return;
-    SendMessageW( GetParent(hwnd), WM_PARENTNOTIFY,
-                  MAKEWPARAM( msg, GetWindowLongW( hwnd, GWL_ID )), (LPARAM)hwnd );
+    if ((GetWindowLongW( hwnd, GWL_STYLE ) & (WS_CHILD | WS_POPUP)) == WS_CHILD &&
+        !(GetWindowLongW( hwnd, GWL_EXSTYLE ) & WS_EX_NOPARENTNOTIFY))
+        SendMessageW( GetParent(hwnd), WM_PARENTNOTIFY,
+                      MAKEWPARAM( msg, GetWindowLongW( hwnd, GWL_ID )), (LPARAM)hwnd );
 }
 
 






More information about the wine-patches mailing list