From 8f8746cc1bcb7c681ae0ed9003d85fe7a4790520 Mon Sep 17 00:00:00 2001 From: Frank Praznik Date: Sun, 22 Jan 2023 15:06:30 -0500 Subject: [PATCH] video: Return an error on failure to set the video mode If SDL_UpdateFullscreenMode() fails to find a matching mode for the window, it will restore the window to its previous state, but still returns a success code of 0. Return an error code of -1 if no matching display mode can be found. --- src/video/SDL_video.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 7f59476186..c44efc6cef 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -1324,6 +1324,7 @@ static int SDL_UpdateFullscreenMode(SDL_Window *window, SDL_bool fullscreen) { SDL_VideoDisplay *display; SDL_Window *other; + int retval = 0; CHECK_WINDOW_MAGIC(window, -1); @@ -1468,6 +1469,9 @@ static int SDL_UpdateFullscreenMode(SDL_Window *window, SDL_bool fullscreen) window->last_fullscreen_flags = window->flags; return 0; + } else { + /* Failed to find a matching mode, return an error after restoring windowed mode. */ + retval = -1; } } } @@ -1487,7 +1491,7 @@ static int SDL_UpdateFullscreenMode(SDL_Window *window, SDL_bool fullscreen) SDL_RestoreMousePosition(window); window->last_fullscreen_flags = window->flags; - return 0; + return retval; } #define CREATE_FLAGS \