From fc69f56b9af0392fa10375696ea1e1292c3a2aa7 Mon Sep 17 00:00:00 2001 From: Steven Fuller Date: Sun, 8 Jun 2008 23:44:02 -0700 Subject: [PATCH] Fixed input not working when coming out of a game. --- src/main.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main.c b/src/main.c index 154e07d..11eaa94 100644 --- a/src/main.c +++ b/src/main.c @@ -493,6 +493,14 @@ int SetSoftVideoMode(int Width, int Height, int Depth) isgrab = SDL_GRAB_OFF; } + // reset input + memset((void*) KeyboardInput, 0, MAX_NUMBER_OF_INPUT_KEYS); + GotAnyKey = 0; + + // force restart the video system + SDL_QuitSubSystem(SDL_INIT_VIDEO); + SDL_InitSubSystem(SDL_INIT_VIDEO); + if ((surface = SDL_SetVideoMode(Width, Height, Depth, flags)) == NULL) { fprintf(stderr, "(Software) SDL SetVideoMode failed: %s\n", SDL_GetError()); exit(EXIT_FAILURE); @@ -551,6 +559,14 @@ int SetOGLVideoMode(int Width, int Height) isgrab = SDL_GRAB_OFF; } + // reset input + memset((void*) KeyboardInput, 0, MAX_NUMBER_OF_INPUT_KEYS); + GotAnyKey = 0; + + // force restart the video system + SDL_QuitSubSystem(SDL_INIT_VIDEO); + SDL_InitSubSystem(SDL_INIT_VIDEO); + load_opengl_library(opengl_library); SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5);