diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 6dbd60e242d25..cd44953e241e0 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); + } } }