diff options
| author | Jody Northup | 2009-08-15 08:48:13 +0000 | 
|---|---|---|
| committer | Jody Northup | 2009-08-15 08:48:13 +0000 | 
| commit | 7ea0646a49a848d2cfa1f18162dba66fc6ddef0b (patch) | |
| tree | ac3306dff4f17d7600b3390b28d08e1f958302a3 /backends | |
| parent | 44e79803648ba7704e97031752506ad42176990d (diff) | |
| download | scummvm-rg350-7ea0646a49a848d2cfa1f18162dba66fc6ddef0b.tar.gz scummvm-rg350-7ea0646a49a848d2cfa1f18162dba66fc6ddef0b.tar.bz2 scummvm-rg350-7ea0646a49a848d2cfa1f18162dba66fc6ddef0b.zip | |
Removed excessive modifier definitions, prevented excessive memory consumption if getHardwareKeyset is called multiple times.
svn-id: r43395
Diffstat (limited to 'backends')
| -rw-r--r-- | backends/platform/sdl/hardwarekeys.cpp | 15 | 
1 files changed, 9 insertions, 6 deletions
| diff --git a/backends/platform/sdl/hardwarekeys.cpp b/backends/platform/sdl/hardwarekeys.cpp index c063ea5bff..623e8b50cf 100644 --- a/backends/platform/sdl/hardwarekeys.cpp +++ b/backends/platform/sdl/hardwarekeys.cpp @@ -162,7 +162,7 @@ static const Key keys[] = {  	{"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 @@ static const Mod modifiers[] = {  	{ 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 @@ static const Mod modifiers[] = {  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 @@ Common::HardwareKeySet *OSystem_SDL::getHardwareKeySet() {  		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 | 
