[Scummvm-cvs-logs] SF.net SVN: scummvm:[43395] scummvm/branches/gsoc2009-16bit/backends/ platform/sdl/hardwarekeys.cpp
upthorn at users.sourceforge.net
upthorn at users.sourceforge.net
Sat Aug 15 10:48:14 CEST 2009
Revision: 43395
http://scummvm.svn.sourceforge.net/scummvm/?rev=43395&view=rev
Author: upthorn
Date: 2009-08-15 08:48:13 +0000 (Sat, 15 Aug 2009)
Log Message:
-----------
Removed excessive modifier definitions, prevented excessive memory consumption if getHardwareKeyset is called multiple times.
Modified Paths:
--------------
scummvm/branches/gsoc2009-16bit/backends/platform/sdl/hardwarekeys.cpp
Modified: scummvm/branches/gsoc2009-16bit/backends/platform/sdl/hardwarekeys.cpp
===================================================================
--- scummvm/branches/gsoc2009-16bit/backends/platform/sdl/hardwarekeys.cpp 2009-08-15 05:39:55 UTC (rev 43394)
+++ scummvm/branches/gsoc2009-16bit/backends/platform/sdl/hardwarekeys.cpp 2009-08-15 08:48:13 UTC (rev 43395)
@@ -162,7 +162,7 @@
{"F15", KEYCODE_F15, 0, "F15", kActionKeyType, ~0},
-// // Modifier keys pressed alone
+ // Modifier keys pressed alone
// {"RSHIFT", KEYCODE_RSHIFT, 0, "Right Shift", kModiferKeyType, ~KBD_SHIFT},
// {"LSHIFT", KEYCODE_LSHIFT, 0, "Left Shift", kModiferKeyType, ~KBD_SHIFT},
// {"RCTRL", KEYCODE_RCTRL, 0, "Right Ctrl", kModiferKeyType, ~KBD_CTRL},
@@ -197,9 +197,6 @@
{ KBD_CTRL, "C+", "Ctrl+" },
{ KBD_ALT, "A+", "Alt+" },
{ KBD_SHIFT, "S+", "Shift+" },
- { KBD_CTRL | KBD_ALT, "C+A+", "Ctrl+Alt+" },
- { KBD_SHIFT | KBD_CTRL, "S+C+", "Shift+Ctrl+" },
- { KBD_SHIFT | KBD_CTRL | KBD_ALT, "S+C+A+", "Shift+Ctrl+Alt+" },
{ 0, 0, 0 }
};
#endif
@@ -207,7 +204,11 @@
Common::HardwareKeySet *OSystem_SDL::getHardwareKeySet() {
#ifdef ENABLE_KEYMAPPER
- HardwareKeySet *keySet = new HardwareKeySet();
+ static HardwareKeySet *keySet = new HardwareKeySet();
+ static bool keySetInited = false;
+ if (keySet && keySetInited)
+ return keySet;
+
const Key *key;
const Mod *mod;
char fullKeyId[50];
@@ -226,9 +227,11 @@
snprintf(fullKeyId, 50, "%s", key->hwId);
snprintf(fullKeyDesc, 100, "%s", key->desc);
- keySet->addHardwareKey(new HardwareKey(fullKeyId, KeyState(key->keycode, ascii, 0), fullKeyDesc, key->preferredAction));
+ keySet->addHardwareKey(new HardwareKey(fullKeyId, KeyState(key->keycode, ascii, 0), fullKeyDesc, key->modableMask, key->preferredAction));
}
+ keySetInited = true;
+
return keySet;
#else
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