KEYMAPPER: Fix broken implementation of findHardwareKey()

This fixes the keymapper dialog (at least on desktop platforms), but the
keymapper itself is still not working (tested with LoL)
This commit is contained in:
Filippos Karapetis 2011-12-30 00:08:31 +02:00
parent 5c9da28119
commit 410c9e0b30
2 changed files with 8 additions and 4 deletions

View File

@ -97,8 +97,12 @@ public:
List<const HardwareKey*>::const_iterator it;
for (it = _keys.begin(); it != _keys.end(); it++) {
if ((*it)->key == keystate)
return (*it);
if ((*it)->key.keycode == keystate.keycode) {
// Only check for control/alt/shift modifiers, not for sticky
// modifiers like num lock/caps lock/scroll lock
if ((*it)->key.flags == (keystate.flags & 7))
return (*it);
}
}
return 0;
}

View File

@ -145,7 +145,7 @@ void Keymap::loadMappings(const HardwareKeySet *hwKeys) {
const HardwareKey *hwKey = hwKeys->findHardwareKey(it->_value.c_str());
if (!hwKey) {
warning("HardwareKey with ID %s not known", it->_value.c_str());
warning("HardwareKey with ID '%s' not known", it->_value.c_str());
_configDomain->erase(key);
continue;
}
@ -199,7 +199,7 @@ bool Keymap::isComplete(const HardwareKeySet *hwKeys) {
// - if an action finds a key with required type but a parent action with
// higher priority is using it, that key is never used
void Keymap::automaticMapping(HardwareKeySet *hwKeys) {
#if 0 //disabling the broken automapper for now
#if 1 //disabling the broken automapper for now
// Create copies of action and key lists.
List<Action*> actions(_actions);
List<const HardwareKey*> keys(hwKeys->getHardwareKeys());