SDL: video: Handle Cocoa desktop mode switch inhibition in the video layer (38a5b)

From 38a5bca8926e5b13d1488bf2f743e7715d6410a6 Mon Sep 17 00:00:00 2001
From: Frank Praznik <[EMAIL REDACTED]>
Date: Mon, 3 Mar 2025 10:50:20 -0500
Subject: [PATCH] video: Handle Cocoa desktop mode switch inhibition in the
 video layer

The X backend had the same issue, so both Cocoa and X can be handled in the same location.

(cherry picked from commit 6c347cbf338e197fc4affdde6bac3c5694707c83)
---
 src/video/SDL_video.c            | 2 +-
 src/video/cocoa/SDL_cocoamodes.m | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
index 8b67558f5fa0e..5350bfb4c5edd 100644
--- a/src/video/SDL_video.c
+++ b/src/video/SDL_video.c
@@ -1435,7 +1435,7 @@ void SDL_SetDesktopDisplayMode(SDL_VideoDisplay *display, const SDL_DisplayMode
 {
     SDL_DisplayMode last_mode;
 
-    if (display->fullscreen_window) {
+    if (display->fullscreen_window || display->device->setting_display_mode) {
         // This is a temporary mode change, don't save the desktop mode
         return;
     }
diff --git a/src/video/cocoa/SDL_cocoamodes.m b/src/video/cocoa/SDL_cocoamodes.m
index ceba83fb3015d..b4e151b916f5a 100644
--- a/src/video/cocoa/SDL_cocoamodes.m
+++ b/src/video/cocoa/SDL_cocoamodes.m
@@ -433,7 +433,7 @@ static void Cocoa_DisplayReconfigurationCallback(CGDirectDisplayID displayid, CG
         }
     }
 
-    if ((flags & kCGDisplaySetModeFlag) && !_this->setting_display_mode) {
+    if (flags & kCGDisplaySetModeFlag) {
         if (display) {
             CGDisplayModeRef moderef = CGDisplayCopyDisplayMode(displayid);
             if (moderef) {