From 634ec34aacc94c27a644f5ffe983529efacb78ff Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Tue, 22 Aug 2023 16:01:14 +0200 Subject: [PATCH] add partial support for Aero Snap --- src/wndproc.c | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/wndproc.c b/src/wndproc.c index a77ffa1..82aaf42 100644 --- a/src/wndproc.c +++ b/src/wndproc.c @@ -49,6 +49,28 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam { return DefWindowProc(hWnd, uMsg, wParam, lParam); } + case WM_GETMINMAXINFO: + { + if (g_ddraw->windowed && g_ddraw->width) + { + MINMAXINFO* mmi = (MINMAXINFO*)lParam; + + RECT rc = { 0, 0, g_ddraw->width, g_ddraw->height }; + + AdjustWindowRectEx( + &rc, + real_GetWindowLongA(g_ddraw->hwnd, GWL_STYLE), + GetMenu(g_ddraw->hwnd) != NULL, + real_GetWindowLongA(g_ddraw->hwnd, GWL_EXSTYLE)); + + mmi->ptMinTrackSize.x = rc.right - rc.left; + mmi->ptMinTrackSize.y = rc.bottom - rc.top; + + return 0; + } + + return DefWindowProc(hWnd, uMsg, wParam, lParam); + } case WM_NCACTIVATE: { if (g_ddraw->noactivateapp) @@ -377,10 +399,25 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam { if (wParam == SIZE_RESTORED) { - if (in_size_move && !g_ddraw->render.thread) + if (in_size_move) + { + /* User resized window */ + if (!g_ddraw->render.thread) + { + g_config.window_rect.right = LOWORD(lParam); + g_config.window_rect.bottom = HIWORD(lParam); + } + else /* Aero Snap resized window */ { g_config.window_rect.right = LOWORD(lParam); g_config.window_rect.bottom = HIWORD(lParam); + + if (g_config.window_rect.right != g_ddraw->render.width || + g_config.window_rect.bottom != g_ddraw->render.height) + { + dd_SetDisplayMode(g_ddraw->width, g_ddraw->height, g_ddraw->bpp, 0); + } + } } /* else if (g_ddraw->wine)