[Scummvm-cvs-logs] SF.net SVN: scummvm:[48524] scummvm/trunk/backends/platform/sdl
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Mon Apr 5 00:08:18 CEST 2010
Revision: 48524
http://scummvm.svn.sourceforge.net/scummvm/?rev=48524&view=rev
Author: lordhoto
Date: 2010-04-04 22:08:18 +0000 (Sun, 04 Apr 2010)
Log Message:
-----------
Commit of patch #2980597 "GSoC: GUI: Text input + Right Alt (bug #2978736)".
Modified Paths:
--------------
scummvm/trunk/backends/platform/sdl/events.cpp
scummvm/trunk/backends/platform/sdl/graphics.cpp
scummvm/trunk/backends/platform/sdl/sdl.h
Modified: scummvm/trunk/backends/platform/sdl/events.cpp
===================================================================
--- scummvm/trunk/backends/platform/sdl/events.cpp 2010-04-04 21:25:24 UTC (rev 48523)
+++ scummvm/trunk/backends/platform/sdl/events.cpp 2010-04-04 22:08:18 UTC (rev 48524)
@@ -339,10 +339,9 @@
if (_scrollLock)
event.kbd.flags |= Common::KBD_SCRL;
- if ((event.kbd.flags & (Common::KBD_CTRL|Common::KBD_ALT)) == (Common::KBD_CTRL|Common::KBD_ALT)) {
+ if (isScalerHotkey(event))
// Swallow these key up events
return false;
- }
return true;
}
Modified: scummvm/trunk/backends/platform/sdl/graphics.cpp
===================================================================
--- scummvm/trunk/backends/platform/sdl/graphics.cpp 2010-04-04 21:25:24 UTC (rev 48523)
+++ scummvm/trunk/backends/platform/sdl/graphics.cpp 2010-04-04 22:08:18 UTC (rev 48524)
@@ -2002,3 +2002,20 @@
return false;
}
}
+
+bool OSystem_SDL::isScalerHotkey(const Common::Event &event) {
+ if ((event.kbd.flags & (Common::KBD_CTRL|Common::KBD_ALT)) == (Common::KBD_CTRL|Common::KBD_ALT)) {
+ const bool isNormalNumber = (Common::KEYCODE_1 <= event.kbd.keycode && event.kbd.keycode <= Common::KEYCODE_9);
+ const bool isKeypadNumber = (Common::KEYCODE_KP1 <= event.kbd.keycode && event.kbd.keycode <= Common::KEYCODE_KP9);
+ const bool isScaleKey = (event.kbd.keycode == Common::KEYCODE_EQUALS || event.kbd.keycode == Common::KEYCODE_PLUS || event.kbd.keycode == Common::KEYCODE_MINUS ||
+ event.kbd.keycode == Common::KEYCODE_KP_PLUS || event.kbd.keycode == Common::KEYCODE_KP_MINUS);
+
+ if (isNormalNumber || isKeypadNumber) {
+ int keyValue = event.kbd.keycode - (isNormalNumber ? Common::KEYCODE_1 : Common::KEYCODE_KP1);
+ if (keyValue >= ARRAYSIZE(s_gfxModeSwitchTable))
+ return false;
+ }
+ return (isScaleKey || event.kbd.keycode == 'a');
+ }
+ return false;
+}
Modified: scummvm/trunk/backends/platform/sdl/sdl.h
===================================================================
--- scummvm/trunk/backends/platform/sdl/sdl.h 2010-04-04 21:25:24 UTC (rev 48523)
+++ scummvm/trunk/backends/platform/sdl/sdl.h 2010-04-04 22:08:18 UTC (rev 48524)
@@ -490,6 +490,7 @@
virtual bool remapKey(SDL_Event &ev, Common::Event &event);
bool handleScalerHotkeys(const SDL_KeyboardEvent &key);
+ bool isScalerHotkey(const Common::Event &event);
};
#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list