SDL: cocoa: Don't overwrite the desktop mode when changing the fullscreen mode (6a9e9)

From 6a9e97088034d14168ca82873d1a098f42a3112b Mon Sep 17 00:00:00 2001
From: Frank Praznik <[EMAIL REDACTED]>
Date: Sat, 1 Mar 2025 22:43:40 -0500
Subject: [PATCH] cocoa: Don't overwrite the desktop mode when changing the
 fullscreen mode

Changing the mode triggers a display reconfiguration event, which will overwrite the desktop mode with the set fullscreen mode, preventing proper restoration when leaving fullscreen. Don't overwrite the desktop mode if the reconfiguration is due to a fullscreen mode switch.

(cherry picked from commit b69201daebfe0e7e0e59cd5fe0f4a24a07d5ae60)
---
 src/video/cocoa/SDL_cocoamodes.m | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/video/cocoa/SDL_cocoamodes.m b/src/video/cocoa/SDL_cocoamodes.m
index b4e151b916f5a..ceba83fb3015d 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) {
+    if ((flags & kCGDisplaySetModeFlag) && !_this->setting_display_mode) {
         if (display) {
             CGDisplayModeRef moderef = CGDisplayCopyDisplayMode(displayid);
             if (moderef) {