From 3fee7a57faa025c2785c79625075761e91e98dba Mon Sep 17 00:00:00 2001 From: simon Date: Sat, 18 Jun 2005 08:52:50 +0000 Subject: [PATCH] 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. git-svn-id: svn://svn.tartarus.org/sgt/puzzles@5975 cda61777-01e9-0310-a592-d414129be87e --- windows.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/windows.c b/windows.c index 30d223d..b93847d 100644 --- a/windows.c +++ b/windows.c @@ -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(); -- 2.11.0