From 66e13cf1ccacf5c3e69526d2fad7d643cccb0be3 Mon Sep 17 00:00:00 2001 From: Steel Titanium Date: Sat, 22 Dec 2018 23:28:59 -0500 Subject: [PATCH 1/4] SDL:Auto grab input --- src/sdl/i_video.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/sdl/i_video.c b/src/sdl/i_video.c index dad3b941f..e7ac169ed 100644 --- a/src/sdl/i_video.c +++ b/src/sdl/i_video.c @@ -1319,6 +1319,9 @@ static SDL_bool Impl_CreateWindow(SDL_bool fullscreen) return SDL_FALSE; } + SDL_RaiseWindow(window); + SDL_SetWindowGrab(window, SDL_TRUE); + // Renderer-specific stuff #ifdef HWRENDER if (rendermode == render_opengl) From 40a037f603b75fa5daa599ca08309c1b57e98507 Mon Sep 17 00:00:00 2001 From: Steel Titanium Date: Sun, 23 Dec 2018 14:54:14 -0500 Subject: [PATCH 2/4] A more through out attempt to lock the mouse --- src/sdl/i_video.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sdl/i_video.c b/src/sdl/i_video.c index e7ac169ed..4c80c389f 100644 --- a/src/sdl/i_video.c +++ b/src/sdl/i_video.c @@ -1320,6 +1320,7 @@ static SDL_bool Impl_CreateWindow(SDL_bool fullscreen) } SDL_RaiseWindow(window); + SDL_SetRelativeMouseMode(SDL_TRUE); SDL_SetWindowGrab(window, SDL_TRUE); // Renderer-specific stuff From 46d1a866d8df71344f08e9a14a1b003961b43c8c Mon Sep 17 00:00:00 2001 From: Steel Titanium Date: Sun, 23 Dec 2018 18:54:15 -0500 Subject: [PATCH 3/4] Another attempt to lock the mouse --- src/sdl/i_video.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/sdl/i_video.c b/src/sdl/i_video.c index 4c80c389f..b93d570a4 100644 --- a/src/sdl/i_video.c +++ b/src/sdl/i_video.c @@ -1319,10 +1319,6 @@ static SDL_bool Impl_CreateWindow(SDL_bool fullscreen) return SDL_FALSE; } - SDL_RaiseWindow(window); - SDL_SetRelativeMouseMode(SDL_TRUE); - SDL_SetWindowGrab(window, SDL_TRUE); - // Renderer-specific stuff #ifdef HWRENDER if (rendermode == render_opengl) @@ -1560,6 +1556,15 @@ void I_StartupGraphics(void) if (!disable_mouse) SDL_ShowCursor(SDL_DISABLE); SDLdoUngrabMouse(); + SDL_RaiseWindow(window); + + if (mousegrabok && !M_CheckParm("-nomouse")) + { + SDL_SetRelativeMouseMode(SDL_TRUE); + } + + SDL_SetWindowGrab(window, SDL_TRUE); + graphics_started = true; } From ed410575d63c8ea89df6d3183c05156b6b7f9296 Mon Sep 17 00:00:00 2001 From: mazmazz Date: Sun, 23 Dec 2018 22:05:09 -0500 Subject: [PATCH 4/4] Only SetWindowGrab if !disable_mouse; toggle cursor visibility --- src/sdl/i_video.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/sdl/i_video.c b/src/sdl/i_video.c index b93d570a4..6a5ec3daa 100644 --- a/src/sdl/i_video.c +++ b/src/sdl/i_video.c @@ -360,6 +360,7 @@ static INT32 Impl_SDL_Scancode_To_Keycode(SDL_Scancode code) static void SDLdoUngrabMouse(void) { + SDL_ShowCursor(SDL_ENABLE); SDL_SetWindowGrab(window, SDL_FALSE); wrapmouseok = SDL_FALSE; SDL_SetRelativeMouseMode(SDL_FALSE); @@ -369,6 +370,7 @@ void SDLforceUngrabMouse(void) { if (SDL_WasInit(SDL_INIT_VIDEO)==SDL_INIT_VIDEO && window != NULL) { + SDL_ShowCursor(SDL_ENABLE); SDL_SetWindowGrab(window, SDL_FALSE); wrapmouseok = SDL_FALSE; SDL_SetRelativeMouseMode(SDL_FALSE); @@ -1553,18 +1555,18 @@ void I_StartupGraphics(void) realheight = (Uint16)vid.height; VID_Command_Info_f(); - if (!disable_mouse) SDL_ShowCursor(SDL_DISABLE); SDLdoUngrabMouse(); SDL_RaiseWindow(window); - if (mousegrabok && !M_CheckParm("-nomouse")) + if (mousegrabok && !disable_mouse) { + SDL_ShowCursor(SDL_DISABLE); SDL_SetRelativeMouseMode(SDL_TRUE); + wrapmouseok = SDL_TRUE; + SDL_SetWindowGrab(window, SDL_TRUE); } - SDL_SetWindowGrab(window, SDL_TRUE); - graphics_started = true; }