aboutsummaryrefslogtreecommitdiff
path: root/backends/keymapper/keymapper.cpp
diff options
context:
space:
mode:
authorJody Northup2009-08-16 07:40:13 +0000
committerJody Northup2009-08-16 07:40:13 +0000
commitcbffcb609f752edcc3f086521c9e0c75b5ee4cc4 (patch)
treee212df62509a74330dd231bd652cc9ff583c5fb5 /backends/keymapper/keymapper.cpp
parent43d57fd333afa54f4e85f30e2ef8231444988066 (diff)
downloadscummvm-rg350-cbffcb609f752edcc3f086521c9e0c75b5ee4cc4.tar.gz
scummvm-rg350-cbffcb609f752edcc3f086521c9e0c75b5ee4cc4.tar.bz2
scummvm-rg350-cbffcb609f752edcc3f086521c9e0c75b5ee4cc4.zip
Replaced KeyStates with ActionKeys in the keymapper, removed SDL ASCII code mismatch workaround hacks, fixed the memory leaks I had previously created.
svn-id: r43430
Diffstat (limited to 'backends/keymapper/keymapper.cpp')
-rw-r--r--backends/keymapper/keymapper.cpp22
1 files changed, 5 insertions, 17 deletions
diff --git a/backends/keymapper/keymapper.cpp b/backends/keymapper/keymapper.cpp
index d101e8e0d2..704affb3fe 100644
--- a/backends/keymapper/keymapper.cpp
+++ b/backends/keymapper/keymapper.cpp
@@ -190,33 +190,21 @@ bool Keymapper::mapKey(const KeyState& key, bool keyDown) {
return false;
Action *action = 0;
-
if (keyDown) {
- // HACK: Temporary fix for modifier recognition, get the hwkey's keystate
- // to correct for keydown and keyup generating different ascii codes in SDL
- // to be solved more permanently by using a structure other than KeyState
-
- const HardwareKey *hwkey = findHardwareKey(key);
- if (!hwkey)
- return false;
-
- KeyState k = hwkey->key;
- k.flags = key.flags & hwkey->modMask;
-
// Search for key in active keymap stack
for (int i = _activeMaps.size() - 1; i >= 0; --i) {
MapRecord mr = _activeMaps[i];
- action = mr.keymap->getMappedAction(k);
+ action = mr.keymap->getMappedAction(key);
if (action || mr.inherit == false)
break;
}
if (action)
- _keysDown[k] = action;
+ _keysDown[key] = action;
} else {
- HashMap<KeyState, Action*>::iterator it = _keysDown.find(key);
+ HashMap<ActionKey, Action*>::iterator it = _keysDown.find(key);
if (it != _keysDown.end()) {
action = it->_value;
@@ -279,11 +267,11 @@ void Keymapper::executeAction(const Action *action, bool keyDown) {
}
}
-const HardwareKey *Keymapper::findHardwareKey(const KeyState& key) {
+const HardwareKey *Keymapper::findHardwareKey(const ActionKey& key) {
return (_hardwareKeys) ? _hardwareKeys->findHardwareKey(key) : 0;
}
-const HardwareMod *Keymapper::findHardwareMod(const KeyState& key) {
+const HardwareMod *Keymapper::findHardwareMod(const ActionKey& key) {
return (_hardwareKeys) ? _hardwareKeys->findHardwareMod(key) : 0;
}