From 21411c6418e1d9c6ea4bc431e6fd0fd636b857bb Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 26 Jul 2024 10:39:05 -0700 Subject: [PATCH] Don't apply creation window flags to external windows. Whoever provided the window has already set it up the way they want it. Fixes SDL removing iconified or maximized state when creating a window from an existing OS window. --- src/video/SDL_video.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 6dbd60e24..cd44953e2 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -2146,9 +2146,14 @@ static void ApplyWindowFlags(SDL_Window *window, SDL_WindowFlags flags) static void SDL_FinishWindowCreation(SDL_Window *window, SDL_WindowFlags flags) { PrepareDragAndDropSupport(window); - ApplyWindowFlags(window, flags); - if (!(flags & SDL_WINDOW_HIDDEN)) { - SDL_ShowWindow(window); + + if (window->flags & SDL_WINDOW_EXTERNAL) { + // Whoever has created the window has already applied whatever flags are needed + } else { + ApplyWindowFlags(window, flags); + if (!(flags & SDL_WINDOW_HIDDEN)) { + SDL_ShowWindow(window); + } } }