diff options
author | Jody Northup | 2009-08-16 07:40:13 +0000 |
---|---|---|
committer | Jody Northup | 2009-08-16 07:40:13 +0000 |
commit | cbffcb609f752edcc3f086521c9e0c75b5ee4cc4 (patch) | |
tree | e212df62509a74330dd231bd652cc9ff583c5fb5 /backends/keymapper/keymapper.cpp | |
parent | 43d57fd333afa54f4e85f30e2ef8231444988066 (diff) | |
download | scummvm-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.cpp | 22 |
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; } |