Just noticed yesterday that initial window sizing is broken on

Windows for puzzles with status bars, because the initial call to
check_window_size is given the window size _without_ the status bar
and assumes that that has to be big enough for the whole thing
_with_ the status bar, so it shrinks everything by a little bit. So
now we resize the window to take account of the status bar before
calling check_window_size(), and the problem seems to have gone away.

[originally from svn r5975]
This commit is contained in:
Simon Tatham
2005-06-18 08:52:50 +00:00
parent b0df75952b
commit 574250995e

View File

@ -522,13 +522,23 @@ static frontend *new_window(HINSTANCE inst, char *game_id, char **error)
r.right - r.left, r.bottom - r.top,
NULL, NULL, inst, NULL);
if (midend_wants_statusbar(fe->me))
if (midend_wants_statusbar(fe->me)) {
RECT sr;
fe->statusbar = CreateWindowEx(0, STATUSCLASSNAME, "ooh",
WS_CHILD | WS_VISIBLE,
0, 0, 0, 0, /* status bar does these */
fe->hwnd, NULL, inst, NULL);
else
/*
* Now resize the window to take account of the status bar.
*/
GetWindowRect(fe->statusbar, &sr);
GetWindowRect(fe->hwnd, &r);
SetWindowPos(fe->hwnd, NULL, 0, 0, r.right - r.left,
r.bottom - r.top + sr.bottom - sr.top,
SWP_NOMOVE | SWP_NOZORDER);
} else {
fe->statusbar = NULL;
}
{
HMENU bar = CreateMenu();