diff options
author | Johannes Schickel | 2009-12-04 19:57:33 +0000 |
---|---|---|
committer | Johannes Schickel | 2009-12-04 19:57:33 +0000 |
commit | ad94de73d880116b02aa658765e9b32583463c96 (patch) | |
tree | c213bde426f05f8ff5c34903b183fbf301899cec /backends/platform | |
parent | 01e12310ae134f429c9ba72fd776af6ccd654a04 (diff) | |
download | scummvm-rg350-ad94de73d880116b02aa658765e9b32583463c96.tar.gz scummvm-rg350-ad94de73d880116b02aa658765e9b32583463c96.tar.bz2 scummvm-rg350-ad94de73d880116b02aa658765e9b32583463c96.zip |
Prevent SDL backend from eating up keypress events with Ctrl+Alt set.
svn-id: r46259
Diffstat (limited to 'backends/platform')
-rw-r--r-- | backends/platform/sdl/events.cpp | 5 | ||||
-rw-r--r-- | backends/platform/sdl/graphics.cpp | 11 | ||||
-rw-r--r-- | backends/platform/sdl/sdl.h | 2 |
3 files changed, 10 insertions, 8 deletions
diff --git a/backends/platform/sdl/events.cpp b/backends/platform/sdl/events.cpp index 4b36de8df0..5905d5f7ee 100644 --- a/backends/platform/sdl/events.cpp +++ b/backends/platform/sdl/events.cpp @@ -297,9 +297,8 @@ bool OSystem_SDL::handleKeyDown(SDL_Event &ev, Common::Event &event) { // Ctrl-Alt-<key> will change the GFX mode if ((b & (Common::KBD_CTRL|Common::KBD_ALT)) == (Common::KBD_CTRL|Common::KBD_ALT)) { - - handleScalerHotkeys(ev.key); - return false; + if (handleScalerHotkeys(ev.key)) + return false; } if (remapKey(ev, event)) diff --git a/backends/platform/sdl/graphics.cpp b/backends/platform/sdl/graphics.cpp index 077a9d519c..4a9c88419a 100644 --- a/backends/platform/sdl/graphics.cpp +++ b/backends/platform/sdl/graphics.cpp @@ -1910,7 +1910,7 @@ void OSystem_SDL::displayMessageOnOSD(const char *msg) { #pragma mark --- Misc --- #pragma mark - -void OSystem_SDL::handleScalerHotkeys(const SDL_KeyboardEvent &key) { +bool OSystem_SDL::handleScalerHotkeys(const SDL_KeyboardEvent &key) { // Ctrl-Alt-a toggles aspect ratio correction if (key.keysym.sym == 'a') { beginGFXTransaction(); @@ -1931,7 +1931,7 @@ void OSystem_SDL::handleScalerHotkeys(const SDL_KeyboardEvent &key) { displayMessageOnOSD(buffer); #endif internUpdateScreen(); - return; + return true; } int newMode = -1; @@ -1951,7 +1951,7 @@ void OSystem_SDL::handleScalerHotkeys(const SDL_KeyboardEvent &key) { if (isNormalNumber || isKeypadNumber) { _scalerType = key.keysym.sym - (isNormalNumber ? SDLK_1 : SDLK_KP1); if (_scalerType >= ARRAYSIZE(s_gfxModeSwitchTable)) - return; + return false; while (s_gfxModeSwitchTable[_scalerType][factor] < 0) { assert(factor > 0); @@ -1987,6 +1987,9 @@ void OSystem_SDL::handleScalerHotkeys(const SDL_KeyboardEvent &key) { } #endif internUpdateScreen(); - } + return true; + } else { + return false; + } } diff --git a/backends/platform/sdl/sdl.h b/backends/platform/sdl/sdl.h index 6163d21105..a38d76583f 100644 --- a/backends/platform/sdl/sdl.h +++ b/backends/platform/sdl/sdl.h @@ -492,7 +492,7 @@ protected: virtual bool remapKey(SDL_Event &ev, Common::Event &event); - void handleScalerHotkeys(const SDL_KeyboardEvent &key); + bool handleScalerHotkeys(const SDL_KeyboardEvent &key); }; #endif |