From 38a5bca8926e5b13d1488bf2f743e7715d6410a6 Mon Sep 17 00:00:00 2001 From: Frank Praznik 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 8b67558f5f..5350bfb4c5 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 ceba83fb30..b4e151b916 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) {