[Bug 4509] Wine Crashes with EasyCT :-(

Wine Bugs wine-bugs at winehq.org
Wed Mar 8 09:08:37 CST 2006


http://bugs.winehq.org/show_bug.cgi?id=4509





------- Additional Comments From xerox_xerox2000 at yahoo.co.uk  2006-08-03 09:08 -------
It's this patch:http://www.winehq.org/pipermail/wine-cvs/2005-November/019187.html
The part of the patch that breaks the app is below, You can still revert the
patch with currnt cvs (patch -Rp1 -i patch.diff). To check: run the app, hit 4
times OK and it will crash. With the reversed patch: hit 4 time ok, and the main
window start fine. Anyone an idea for a proper fix?



--- wine/dlls/x11drv/winpos.c:1.140	9 Nov 2005 10:35:48 -0000
+++ wine/dlls/x11drv/winpos.c	9 Nov 2005 10:35:48 -0000
@@ -1003,12 +1003,22 @@ BOOL X11DRV_ShowWindow( HWND hwnd, INT c
         if (!IsWindow( hwnd )) return wasVisible;
     }
 
-    /* ShowWindow won't activate a not being maximized child window */
-    if ((style & WS_CHILD) && cmd != SW_MAXIMIZE)
-        swp |= SWP_NOACTIVATE | SWP_NOZORDER;
+    if (!IsWindowVisible( GetAncestor( hwnd, GA_PARENT )))
+    {
+        /* if parent is not visible simply toggle WS_VISIBLE and return */
+        if (showFlag) WIN_SetStyle( hwnd, WS_VISIBLE, 0 );
+        else WIN_SetStyle( hwnd, 0, WS_VISIBLE );
+    }
+    else
+    {
+        /* ShowWindow won't activate a not being maximized child window */
+        if ((style & WS_CHILD) && cmd != SW_MAXIMIZE)
+            swp |= SWP_NOACTIVATE | SWP_NOZORDER;
+
+        SetWindowPos( hwnd, HWND_TOP, newPos.left, newPos.top,
+                      newPos.right, newPos.bottom, LOWORD(swp) );
+    }
 
-    SetWindowPos( hwnd, HWND_TOP, newPos.left, newPos.top,
-                  newPos.right, newPos.bottom, LOWORD(swp) );
     if (cmd == SW_HIDE)
     {
         HWND hFocus;

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list