From 80a590507535da7403c3f75c958e7a45517ada4d Mon Sep 17 00:00:00 2001
From: Frank Praznik <[EMAIL REDACTED]>
Date: Sat, 25 Apr 2026 11:07:39 -0400
Subject: [PATCH] wayland: Change the non-native fullscreen mode scaling
default to 'aspect'
---
include/SDL3/SDL_hints.h | 3 +--
src/video/wayland/SDL_waylandwindow.c | 8 ++++----
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/include/SDL3/SDL_hints.h b/include/SDL3/SDL_hints.h
index 377226f05757a..2f01f09881a13 100644
--- a/include/SDL3/SDL_hints.h
+++ b/include/SDL3/SDL_hints.h
@@ -4037,9 +4037,8 @@ extern "C" {
* The variable can be set to the following values:
*
* - "aspect" - Video modes will be displayed scaled, in their proper aspect
- * ratio, with black bars.
+ * ratio, with black bars. (default)
* - "stretch" - Video modes will be scaled to fill the entire display.
- * (default)
* - "none" - Video modes will be displayed as 1:1 with no scaling.
*
* This hint should be set before creating a window.
diff --git a/src/video/wayland/SDL_waylandwindow.c b/src/video/wayland/SDL_waylandwindow.c
index cc44d58ef42a6..1dd4ec47ddb66 100644
--- a/src/video/wayland/SDL_waylandwindow.c
+++ b/src/video/wayland/SDL_waylandwindow.c
@@ -103,15 +103,15 @@ static enum WaylandModeScale GetModeScaleMethod(void)
const char *scale_hint = SDL_GetHint(SDL_HINT_VIDEO_WAYLAND_MODE_SCALING);
if (scale_hint) {
- if (!SDL_strcasecmp(scale_hint, "aspect")) {
- scale_mode = WAYLAND_MODE_SCALE_ASPECT;
+ if (!SDL_strcasecmp(scale_hint, "stretch")) {
+ scale_mode = WAYLAND_MODE_SCALE_STRETCH;
} else if (!SDL_strcasecmp(scale_hint, "none")) {
scale_mode = WAYLAND_MODE_SCALE_NONE;
} else {
- scale_mode = WAYLAND_MODE_SCALE_STRETCH;
+ scale_mode = WAYLAND_MODE_SCALE_ASPECT;
}
} else {
- scale_mode = WAYLAND_MODE_SCALE_STRETCH;
+ scale_mode = WAYLAND_MODE_SCALE_ASPECT;
}
}