diff --git a/Quake/gl_vidsdl.c b/Quake/gl_vidsdl.c index 6e9c4617..37cb2dee 100644 --- a/Quake/gl_vidsdl.c +++ b/Quake/gl_vidsdl.c @@ -542,6 +542,7 @@ static qboolean VID_SetMode (int width, int height, int bpp, qboolean fullscreen char caption[50]; int depthbits, stencilbits; int fsaa_obtained; + int previous_display; // so Con_Printfs don't mess us up by forcing vid and snd updates temp = scr_disabled_for_loading; @@ -595,6 +596,12 @@ static qboolean VID_SetMode (int width, int height, int bpp, qboolean fullscreen } if (!draw_context) Sys_Error ("Couldn't create window"); + + previous_display = -1; + } + else + { + previous_display = SDL_GetWindowDisplayIndex(draw_context); } /* Ensure the window is not fullscreen */ @@ -606,7 +613,10 @@ static qboolean VID_SetMode (int width, int height, int bpp, qboolean fullscreen /* Set window size and display mode */ SDL_SetWindowSize (draw_context, width, height); - SDL_SetWindowPosition (draw_context, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED); + if (previous_display >= 0) + SDL_SetWindowPosition (draw_context, SDL_WINDOWPOS_CENTERED_DISPLAY(previous_display), SDL_WINDOWPOS_CENTERED_DISPLAY(previous_display)); + else + SDL_SetWindowPosition(draw_context, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED); SDL_SetWindowDisplayMode (draw_context, VID_SDL2_GetDisplayMode(width, height, bpp)); SDL_SetWindowBordered (draw_context, vid_borderless.value ? SDL_FALSE : SDL_TRUE);