Remove the RaiseWindow call from OnWindowRestored for now. It seems like a net improvement in all the scenarios Sam and I could think of, and looking at hg history it was added for fullscreen window management specifically. Much of that code has changed since then, but maybe it needs to stay there for that and simply be moved to a fullscreen condition check. It would solve this issue: https://bugzilla.libsdl.org/show_bug.cgi?id=2439 As well as cases where on SteamOS, we hide/show specific Steam overlay windows while expecting them to stay in the background, since changing the window stacking order really angers the NVIDIA driver. CR: Sam.
diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
index 18f65d0..c1f3791 100644
--- a/src/video/SDL_video.c
+++ b/src/video/SDL_video.c
@@ -2129,7 +2129,13 @@ SDL_OnWindowMinimized(SDL_Window * window)
void
SDL_OnWindowRestored(SDL_Window * window)
{
- SDL_RaiseWindow(window);
+ /*
+ * FIXME: Is this fine to just remove this, or should it be preserved just
+ * for the fullscreen case? In principle it seems like just hiding/showing
+ * windows shouldn't affect the stacking order; maybe the right fix is to
+ * re-decouple OnWindowShown and OnWindowRestored.
+ */
+ //SDL_RaiseWindow(window);
if (FULLSCREEN_VISIBLE(window)) {
SDL_UpdateFullscreenMode(window, SDL_TRUE);