"Peter Oberndorfer" kumbayo84@arcor.de wrote:
this patch seems to cause http://bugs.winehq.org/show_bug.cgi?id=7190 Each time a MDI child window gets a WM_SIZE the left most menu entry disapperars. The problem is that MDI_RestoreFrameMenu is called for each WM_SIZE message, that does not maximize the window, instead of only beeing called when window goes from maximized to normal And MDI_RestoreFrameMenu removes the left most menu entry, in belief is the document icon of a maximized child.
What is the reason for restoring the old code? Does the new code break some apps?
Old code seemed to be more correct because it makes more MDI message tests pass.
The attached patch, which reverts a part of the revert "fixes" the problem for my test app(ollydbg) But i guess it is totally wrong :-)
this patch restores (almost completely) an old WM_SIZE handler in mdi child, including the comment /* do not change */.
Changelog: user32: Restore old WM_SIZE handler in mdi child.
Greetings Peter
diff --git a/dlls/user32/mdi.c b/dlls/user32/mdi.c index f8bb8f8..dace1e8 100644 --- a/dlls/user32/mdi.c +++ b/dlls/user32/mdi.c @@ -1518,7 +1518,7 @@ LRESULT WINAPI DefMDIChildProcW( HWND hwnd, UINT message, /* do not change */ TRACE("current active %p, maximized %p\n", ci->hwndActiveChild, ci->hwndChildMaximized);
if( ci->hwndActiveChild == hwnd && wParam != SIZE_MAXIMIZED )
if( ci->hwndChildMaximized == hwnd && wParam != SIZE_MAXIMIZED ) { HWND frame;
Good catch! The fix looks reasonable. Please submit to wine-patches. Thanks for finding the source of the regression.