http://bugs.winehq.org/show_bug.cgi?id=12001
Jan de Mooij jandemooij@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jandemooij@gmail.com
--- Comment #33 from Jan de Mooij jandemooij@gmail.com 2008-11-06 16:00:17 --- Part of the problem is that the application passes an uninitialized struct to SetWindowPlacement. It looks like only the length field is filled in, like this:
WINDOWPLACEMENT placement; placement.length = sizeof(WINDOWPLACEMENT); SetWindowPlacement(hwnd, &placement);
So the other fields are uninitialized. This causes a few problems: - make_rect_onscreen can't handle cases where left > right or top > bottom, which can happen here (uninitialized memory..) - ShowWindow should ignore invalid cmd parameter (correctly changed by AJ's patch identified as the cause of this regression). In WINPOS_SetPlacement, instead of this (tested with a simple program): ShowWindow( hwnd, cmd ); Windows seems to behave like this: ShowWindow( hwnd, wndpl->showCmd <= 0xff ? wndpl->showCmd : SW_RESTORE );
HTH