From 90b7174a7d3879e2be9fd340e6ca860cf92ad4d8 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sat, 18 Jan 2025 06:07:06 -0800
Subject: [PATCH] Respect the SDL_BORDERLESS_RESIZABLE_STYLE hint, but default
it to true.
---
src/video/windows/SDL_windowswindow.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/video/windows/SDL_windowswindow.c b/src/video/windows/SDL_windowswindow.c
index ef516c19df2c6..427defb10d18f 100644
--- a/src/video/windows/SDL_windowswindow.c
+++ b/src/video/windows/SDL_windowswindow.c
@@ -143,6 +143,7 @@ static ATOM SDL_HelperWindowClass = 0;
/* For borderless Windows, still want the following flag:
- WS_MINIMIZEBOX: window will respond to Windows minimize commands sent to all windows, such as windows key + m, shaking title bar, etc.
+ - WS_MAXIMIZEBOX: window will respond to Windows maximize commands sent to all windows, and the window will fill the usable desktop area rather than the whole screen
Additionally, non-fullscreen windows can add:
- WS_CAPTION: this seems to enable the Windows minimize animation
- WS_SYSMENU: enables system context menu on task bar
@@ -152,8 +153,8 @@ static ATOM SDL_HelperWindowClass = 0;
#define STYLE_BASIC (WS_CLIPSIBLINGS | WS_CLIPCHILDREN)
#define STYLE_FULLSCREEN (WS_POPUP | WS_MINIMIZEBOX)
-#define STYLE_BORDERLESS (WS_POPUP | WS_MINIMIZEBOX | WS_THICKFRAME)
-#define STYLE_BORDERLESS_WINDOWED (WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_THICKFRAME)
+#define STYLE_BORDERLESS (WS_POPUP | WS_MINIMIZEBOX)
+#define STYLE_BORDERLESS_WINDOWED (WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX)
#define STYLE_NORMAL (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX)
#define STYLE_RESIZABLE (WS_THICKFRAME | WS_MAXIMIZEBOX)
#define STYLE_MASK (STYLE_FULLSCREEN | STYLE_BORDERLESS | STYLE_NORMAL | STYLE_RESIZABLE)
@@ -189,7 +190,7 @@ static DWORD GetWindowStyle(SDL_Window *window)
see https://bugzilla.libsdl.org/show_bug.cgi?id=4466
*/
if (!(window->flags & SDL_WINDOW_BORDERLESS) ||
- SDL_GetHintBoolean("SDL_BORDERLESS_RESIZABLE_STYLE", false)) {
+ SDL_GetHintBoolean("SDL_BORDERLESS_RESIZABLE_STYLE", true)) {
style |= STYLE_RESIZABLE;
} else if (window->flags & SDL_WINDOW_BORDERLESS) {
/* Even if the resizable style hint isn't set, WS_MAXIMIZEBOX is still needed, or