http://bugs.winehq.org/show_bug.cgi?id=4509
------- Additional Comments From xerox_xerox2000@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;