https://bugs.winehq.org/show_bug.cgi?id=37864
--- Comment #1 from ryampolsky@yahoo.com --- More info on the SizeWindowForScreenDimensions() function - which is where the problem's really happening.
All it does is call GetWindowPlacement(), update the rcNormalPosition rectangle in the WINDOWPLACEMENT struct and then call SetWindowPlacement() to change the position rect. I verified that the WINDOWPLACEMENT showCmd field returned by GetWindowPlacement() is 3 (SW_MAXIMIZE). When I call SetWindowPlacement with showCmd of SW_MAXIMIZE, it should remain maximized. I think that's where the WINE bug is. After that call, the MDI child window size and position reflects the new rcNormalPosition, but the window is still technically 'maximized' (i.e., the MDI child buttons appear both on the menubar and on the MDI child's titlebar). And if I click on a second MDI child (now visible, because the original one isn't properly maximized), it comes up maximized, and everything's okay from there on - until it happens again after the next transaction.