aboutsummaryrefslogtreecommitdiff
path: root/windows.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2005-06-18 08:52:50 +0000
committerSimon Tatham <anakin@pobox.com>2005-06-18 08:52:50 +0000
commit574250995ecf9ce06f532b0972024b14355e6d43 (patch)
treea71044bfade5ae5fbacbe75f31e758ce61fbdf92 /windows.c
parentb0df75952bb6302e79fa1fbf07f2495d8e283a9a (diff)
downloadpuzzles-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.c14
1 files 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();