From 2652836af364935294a2c731de74502de530f9e6 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sat, 24 Aug 2013 13:33:09 +0300 Subject: fix "grab input" in SDL2. --- src/client.cpp | 8 ++------ src/utils/sdl2helper.cpp | 5 +++++ src/utils/sdl2helper.h | 1 + src/utils/sdlhelper.cpp | 5 +++++ src/utils/sdlhelper.h | 1 + 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/client.cpp b/src/client.cpp index 974e8d400..f7fd72094 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -2815,12 +2815,8 @@ void Client::resizeVideo(int width, int height, const bool always) void Client::applyGrabMode() { -#ifdef USE_SDL2 - // +++ need use SDL_SetWindowGrab -#else - SDL_WM_GrabInput(config.getBoolValue("grabinput") - ? SDL_GRAB_ON : SDL_GRAB_OFF); -#endif + SDL::grabInput(mainGraphics->getWindow(), + config.getBoolValue("grabinput")); } void Client::applyGamma() diff --git a/src/utils/sdl2helper.cpp b/src/utils/sdl2helper.cpp index 1ae8b087f..442d40990 100644 --- a/src/utils/sdl2helper.cpp +++ b/src/utils/sdl2helper.cpp @@ -47,4 +47,9 @@ void SDL::SetWindowIcon(SDL_Window *const window, SDL_Surface *const icon) SDL_SetWindowIcon(window, icon); } +void SDL::grabInput(SDL_Window *const window, const bool grab) +{ + SDL_SetWindowGrab(window, grab ? SDL_TRUE : SDL_FALSE); +} + #endif // USE_SDL2 diff --git a/src/utils/sdl2helper.h b/src/utils/sdl2helper.h index bf3c57f0c..956a63ff8 100644 --- a/src/utils/sdl2helper.h +++ b/src/utils/sdl2helper.h @@ -37,6 +37,7 @@ namespace SDL void SetWindowIcon(SDL_Window *const window, SDL_Surface *const icon); + void grabInput(SDL_Window *const window, const bool grab); } // namespace SDL #endif // USE_SDL2 diff --git a/src/utils/sdlhelper.cpp b/src/utils/sdlhelper.cpp index 9d28f6c96..a470ce927 100644 --- a/src/utils/sdlhelper.cpp +++ b/src/utils/sdlhelper.cpp @@ -73,4 +73,9 @@ void SDL::SetWindowIcon(SDL_Surface *const window A_UNUSED, SDL_WM_SetIcon(icon, nullptr); } +void SDL::grabInput(SDL_Surface *const window A_UNUSED, const bool grab) +{ + SDL_WM_GrabInput(grab ? SDL_GRAB_ON : SDL_GRAB_OFF); +} + #endif // USE_SDL2 diff --git a/src/utils/sdlhelper.h b/src/utils/sdlhelper.h index 9d122f934..912528a29 100644 --- a/src/utils/sdlhelper.h +++ b/src/utils/sdlhelper.h @@ -41,6 +41,7 @@ namespace SDL void SetWindowIcon(SDL_Surface *const window A_UNUSED, SDL_Surface *const icon); + void grabInput(SDL_Surface *const window A_UNUSED, const bool grab); } // namespace SDL #endif // USE_SDL2 -- cgit v1.2.3-60-g2f50