diff --git a/src/win/win_ui.c b/src/win/win_ui.c index 709663619..d76477f1a 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.36 2018/10/24 + * Version: @(#)win_ui.c 1.0.37 2018/10/28 * * Authors: Sarah Walker, * Miran Grca, @@ -52,6 +52,7 @@ HICON hIcon[256]; /* icon data loaded from resources */ RECT oldclip; /* mouse rect */ int infocus = 1; int rctrl_is_lalt = 0; +int user_resize = 0; char openfilestring[260]; WCHAR wopenfilestring[260]; @@ -543,6 +544,9 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) break; case WM_SIZE: + if (user_resize && !vid_resize) + break; + SendMessage(hwndSBAR, SB_GETBORDERS, 0, (LPARAM) sb_borders); temp_x = (lParam & 0xFFFF); @@ -588,11 +592,6 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) break; case WM_MOVE: - /* If window is not resizable, then tell the main thread to - resize it, as sometimes, moves can mess up the window size. */ - if (!vid_resize) - doresize = 1; - if (window_remember) { GetWindowRect(hwnd, &rect); window_x = rect.left; @@ -688,6 +687,19 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) hook_enabled = 0; } break; + + case WM_ENTERSIZEMOVE: + user_resize = 1; + break; + + case WM_EXITSIZEMOVE: + user_resize = 0; + + /* If window is not resizable, then tell the main thread to + resize it, as sometimes, moves can mess up the window size. */ + if (!vid_resize) + doresize = 1; + break; } return(0); @@ -989,6 +1001,7 @@ plat_resize(int x, int y) /* First, see if we should resize the UI window. */ if (!vid_resize) { video_wait_for_blit(); + SendMessage(hwndSBAR, SB_GETBORDERS, 0, (LPARAM) sb_borders); GetWindowRect(hwndMain, &r);