diff --git a/src/win/win_ui.c b/src/win/win_ui.c index 524a0f45e..a583d35b2 100644 --- a/src/win/win_ui.c +++ b/src/win/win_ui.c @@ -8,7 +8,7 @@ * * user Interface module for WinAPI on Windows. * - * Version: @(#)win_ui.c 1.0.20 2018/02/14 + * Version: @(#)win_ui.c 1.0.21 2018/02/14 * * Authors: Sarah Walker, * Miran Grca, @@ -281,6 +281,8 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) int sb_borders[3]; RECT rect; + int temp_x, temp_y; + switch (message) { case WM_CREATE: SetTimer(hwnd, TIMER_1SEC, 1000, NULL); @@ -610,19 +612,29 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) break; case WM_SIZE: - if (!vid_resize) - break; + SendMessage(hwndSBAR, SB_GETBORDERS, 0, (LPARAM) sb_borders); - scrnsz_x = (lParam & 0xFFFF); - scrnsz_y = (lParam >> 16) - (17 + 6); - if (scrnsz_y < 0) - scrnsz_y = 0; + temp_x = (lParam & 0xFFFF); + temp_y = (lParam >> 16) - (21 + sb_borders[1]); + if (temp_y < 0) + temp_y = 0; + + if ((temp_x != scrnsz_x) || (temp_y != scrnsz_y)) + doresize = 1; + + scrnsz_x = temp_x; + scrnsz_y = temp_y; MoveWindow(hwndRender, 0, 0, scrnsz_x, scrnsz_y, TRUE); plat_vidsize(scrnsz_x, scrnsz_y); - MoveWindow(hwndSBAR, 0, scrnsz_y + 6, scrnsz_x, 17, TRUE); + GetWindowRect(hwndRender, &rect); + + /* Status bar. */ + MoveWindow(hwndSBAR, + 0, rect.bottom + GetSystemMetrics(SM_CYEDGE), + scrnsz_x, 17, TRUE); if (mouse_capture) { GetWindowRect(hwndRender, &rect);