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) {