From 747f1df81cf051bd5e5f0680d4a8420b98eaf8a4 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Sat, 5 Oct 2024 22:39:49 +0200 Subject: [PATCH] add hack for linux to enforce minimum window size --- inc/wndproc.h | 1 + src/wndproc.c | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/inc/wndproc.h b/inc/wndproc.h index 4d36cb3..4af4f7e 100644 --- a/inc/wndproc.h +++ b/inc/wndproc.h @@ -12,6 +12,7 @@ #define WM_RESTORE_STYLE WM_APP+119 #define IDT_TIMER_LEAVE_BNET 541287654 +#define IDT_TIMER_LINUX_FIX_WINDOW_SIZE 345267753 #define CNC_DDRAW_SET_FULLSCREEN 1 #define CNC_DDRAW_SET_WINDOWED 2 diff --git a/src/wndproc.c b/src/wndproc.c index 890bc01..cba872e 100644 --- a/src/wndproc.c +++ b/src/wndproc.c @@ -216,6 +216,12 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam return 0; } + case IDT_TIMER_LINUX_FIX_WINDOW_SIZE: + { + KillTimer(g_ddraw.hwnd, IDT_TIMER_LINUX_FIX_WINDOW_SIZE); + util_set_window_rect(0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); + return 0; + } } break; } @@ -471,6 +477,11 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam g_config.window_rect.bottom = height; dd_SetDisplayMode(0, 0, 0, 0); + + if (width < g_ddraw.width || height < g_ddraw.height) + { + SetTimer(g_ddraw.hwnd, IDT_TIMER_LINUX_FIX_WINDOW_SIZE, 1000, (TIMERPROC)NULL); + } } } }