SDL: cocoa: Send a maximized event instead of restored if a deminiaturized window is zoomed

From fe85e6e75416a4f6874856b52beafd3e618c92dc Mon Sep 17 00:00:00 2001
From: Frank Praznik <[EMAIL REDACTED]>
Date: Mon, 14 Aug 2023 11:00:40 -0400
Subject: [PATCH] cocoa: Send a maximized event instead of restored if a
 deminiaturized window is zoomed

---
 src/video/cocoa/SDL_cocoawindow.m | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m
index 608d28a62af9..7a3af36234e7 100644
--- a/src/video/cocoa/SDL_cocoawindow.m
+++ b/src/video/cocoa/SDL_cocoawindow.m
@@ -955,7 +955,12 @@ - (void)windowDidMiniaturize:(NSNotification *)aNotification
 
 - (void)windowDidDeminiaturize:(NSNotification *)aNotification
 {
-    SDL_SendWindowEvent(_data.window, SDL_EVENT_WINDOW_RESTORED, 0, 0);
+    /* isZoomed always returns true if the window is not resizable */
+    if ((_data.window->flags & SDL_WINDOW_RESIZABLE) && [_data.nswindow isZoomed]) {
+        SDL_SendWindowEvent(_data.window, SDL_EVENT_WINDOW_MAXIMIZED, 0, 0);
+    } else {
+        SDL_SendWindowEvent(_data.window, SDL_EVENT_WINDOW_RESTORED, 0, 0);
+    }
 }
 
 - (void)windowDidBecomeKey:(NSNotification *)aNotification