From 0d28dc92fc71c55fe0249937af5e98ebfadb2151 Mon Sep 17 00:00:00 2001 From: matthijs Date: Tue, 4 Jun 2013 06:36:59 +0000 Subject: [PATCH] (svn r25318) -Fix: [SDL, FS#5580] Keyboard input stopped working after fullscreen toggle --- src/video/sdl_v.cpp | 11 ++++++++--- src/video/sdl_v.h | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index a9b909b82e..736e069ce3 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -340,6 +340,7 @@ bool VideoDriver_SDL::CreateMainSurface(uint w, uint h) SDL_CALL SDL_QuitSubSystem(SDL_INIT_VIDEO); SDL_CALL SDL_InitSubSystem(SDL_INIT_VIDEO); ClaimMousePointer(); + SetupKeyboard(); } } /* Remember if we wanted a hwpalette. We can't reliably query @@ -649,15 +650,19 @@ const char *VideoDriver_SDL::Start(const char * const *parm) DEBUG(driver, 1, "SDL: using driver '%s'", buf); MarkWholeScreenDirty(); - - SDL_CALL SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); - SDL_CALL SDL_EnableUNICODE(1); + SetupKeyboard(); _draw_threaded = GetDriverParam(parm, "no_threads") == NULL && GetDriverParam(parm, "no_thread") == NULL; return NULL; } +void VideoDriver_SDL::SetupKeyboard() +{ + SDL_CALL SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); + SDL_CALL SDL_EnableUNICODE(1); +} + void VideoDriver_SDL::Stop() { SdlClose(SDL_INIT_VIDEO); diff --git a/src/video/sdl_v.h b/src/video/sdl_v.h index 6c69d68d85..66f8bf8564 100644 --- a/src/video/sdl_v.h +++ b/src/video/sdl_v.h @@ -37,6 +37,7 @@ public: private: int PollEvent(); bool CreateMainSurface(uint w, uint h); + void SetupKeyboard(); }; /** Factory for the SDL video driver. */