From 69e4c770f3dfb82e36d48adfd0684dbd6d12f677 Mon Sep 17 00:00:00 2001
From: Frank Praznik <[EMAIL REDACTED]>
Date: Sun, 4 Sep 2022 12:18:38 -0400
Subject: [PATCH] video: Make the mode switching function a NOP if mode
switching is disabled
Instead of wrapping individual calls to SDL_SetDisplayModeForDisplay(), just check the flag in the function itself and make it a NOP that cannot fail if the flag is set. Silences some errant "SDL video driver doesn't support changing display mode" log errors.
---
src/video/SDL_video.c | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)
diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
index b4f3c1e9cdd..3f4cfd7ecf0 100644
--- a/src/video/SDL_video.c
+++ b/src/video/SDL_video.c
@@ -1030,6 +1030,11 @@ SDL_SetDisplayModeForDisplay(SDL_VideoDisplay * display, const SDL_DisplayMode *
SDL_DisplayMode current_mode;
int result;
+ /* Mode switching disabled via driver quirk flag, nothing to do and cannot fail. */
+ if (DisableDisplayModeSwitching(_this)) {
+ return 0;
+ }
+
if (mode) {
display_mode = *mode;
@@ -1430,17 +1435,14 @@ SDL_UpdateFullscreenMode(SDL_Window * window, SDL_bool fullscreen)
resized = SDL_FALSE;
}
- /* Don't try to change the display mode if the driver doesn't want it. */
- if (DisableDisplayModeSwitching(_this) == SDL_FALSE) {
- /* only do the mode change if we want exclusive fullscreen */
- if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) != SDL_WINDOW_FULLSCREEN_DESKTOP) {
- if (SDL_SetDisplayModeForDisplay(display, &fullscreen_mode) < 0) {
- return -1;
- }
- } else {
- if (SDL_SetDisplayModeForDisplay(display, NULL) < 0) {
- return -1;
- }
+ /* only do the mode change if we want exclusive fullscreen */
+ if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) != SDL_WINDOW_FULLSCREEN_DESKTOP) {
+ if (SDL_SetDisplayModeForDisplay(display, &fullscreen_mode) < 0) {
+ return -1;
+ }
+ } else {
+ if (SDL_SetDisplayModeForDisplay(display, NULL) < 0) {
+ return -1;
}
}