diff options
| author | Simon Tatham <anakin@pobox.com> | 2005-06-18 08:52:50 +0000 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2005-06-18 08:52:50 +0000 |
| commit | 574250995ecf9ce06f532b0972024b14355e6d43 (patch) | |
| tree | a71044bfade5ae5fbacbe75f31e758ce61fbdf92 /windows.c | |
| parent | b0df75952bb6302e79fa1fbf07f2495d8e283a9a (diff) | |
| download | puzzles-574250995ecf9ce06f532b0972024b14355e6d43.zip puzzles-574250995ecf9ce06f532b0972024b14355e6d43.tar.gz puzzles-574250995ecf9ce06f532b0972024b14355e6d43.tar.bz2 puzzles-574250995ecf9ce06f532b0972024b14355e6d43.tar.xz | |
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]
Diffstat (limited to 'windows.c')
| -rw-r--r-- | windows.c | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -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(); |