diff options
-rw-r--r-- | backends/keymapper/keymapper.cpp | 3 | ||||
-rw-r--r-- | backends/keymapper/types.h | 2 | ||||
-rw-r--r-- | backends/platform/sdl/hardwarekeys.cpp | 12 |
3 files changed, 9 insertions, 8 deletions
diff --git a/backends/keymapper/keymapper.cpp b/backends/keymapper/keymapper.cpp index 24b4d7e5f8..d101e8e0d2 100644 --- a/backends/keymapper/keymapper.cpp +++ b/backends/keymapper/keymapper.cpp @@ -195,12 +195,13 @@ bool Keymapper::mapKey(const KeyState& key, bool 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; + k.flags = key.flags & hwkey->modMask; // Search for key in active keymap stack for (int i = _activeMaps.size() - 1; i >= 0; --i) { diff --git a/backends/keymapper/types.h b/backends/keymapper/types.h index 004a90bfcd..3cce79ee9a 100644 --- a/backends/keymapper/types.h +++ b/backends/keymapper/types.h @@ -43,7 +43,7 @@ enum KeyType { kTriggerRightKeyType, kStartKeyType, kSelectKeyType, -// kModiferKeyType, + kModiferKeyType, /* ... */ kKeyTypeMax diff --git a/backends/platform/sdl/hardwarekeys.cpp b/backends/platform/sdl/hardwarekeys.cpp index 623e8b50cf..506e71d092 100644 --- a/backends/platform/sdl/hardwarekeys.cpp +++ b/backends/platform/sdl/hardwarekeys.cpp @@ -163,12 +163,12 @@ static const Key keys[] = { // 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}, -// {"LCTRL", KEYCODE_LCTRL, 0, "Left Ctrl", kModiferKeyType, ~KBD_CTRL}, -// {"RALT", KEYCODE_RALT, 0, "Right Alt", kModiferKeyType, ~KBD_ALT}, -// {"LALT", KEYCODE_LALT, 0, "Left Alt", kModiferKeyType, ~KBD_ALT}, + {"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}, + {"LCTRL", KEYCODE_LCTRL, 0, "Left Ctrl", kModiferKeyType, ~KBD_CTRL}, + {"RALT", KEYCODE_RALT, 0, "Right Alt", kModiferKeyType, ~KBD_ALT}, + {"LALT", KEYCODE_LALT, 0, "Left Alt", kModiferKeyType, ~KBD_ALT}, // Miscellaneous function keys |