From 014196d98d500aba52298dfe14e1afa6b752f989 Mon Sep 17 00:00:00 2001
From: Frank Praznik <[EMAIL REDACTED]>
Date: Tue, 19 Nov 2024 10:52:27 -0500
Subject: [PATCH] cocoa: Fix minimizing fullscreen windows on Sequoia
Sequoia seems to require that the window briefly be made key when minimizing it after coming out of fullscreen.
---
src/video/cocoa/SDL_cocoawindow.m | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m
index 7afa943e52f27..cf6290cd5055c 100644
--- a/src/video/cocoa/SDL_cocoawindow.m
+++ b/src/video/cocoa/SDL_cocoawindow.m
@@ -2801,14 +2801,7 @@ SDL_FullscreenResult Cocoa_SetWindowFullscreen(SDL_VideoDevice *_this, SDL_Windo
// When the window style changes the title is cleared
if (!fullscreen) {
Cocoa_SetWindowTitle(_this, window);
-
data.was_zoomed = NO;
-
- if ([data.listener windowOperationIsPending:PENDING_OPERATION_MINIMIZE]) {
- Cocoa_WaitForMiniaturizable(window);
- [data.listener addPendingWindowOperation:PENDING_OPERATION_ENTER_FULLSCREEN];
- [nswindow miniaturize:nil];
- }
}
if (SDL_ShouldAllowTopmost() && fullscreen) {
@@ -2842,6 +2835,15 @@ SDL_FullscreenResult Cocoa_SetWindowFullscreen(SDL_VideoDevice *_this, SDL_Windo
}
}
+ /* When coming out of fullscreen to minimize, this needs to happen after the window
+ * is made key again, or it won't minimize on 15.0 (Sequoia).
+ */
+ if (!fullscreen && [data.listener windowOperationIsPending:PENDING_OPERATION_MINIMIZE]) {
+ Cocoa_WaitForMiniaturizable(window);
+ [data.listener addPendingWindowOperation:PENDING_OPERATION_ENTER_FULLSCREEN];
+ [nswindow miniaturize:nil];
+ }
+
ScheduleContextUpdates(data);
}