[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