diff options
Diffstat (limited to 'backends/keymapper/remap-dialog.cpp')
-rw-r--r-- | backends/keymapper/remap-dialog.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/backends/keymapper/remap-dialog.cpp b/backends/keymapper/remap-dialog.cpp index 0440acdd0a..9341c82747 100644 --- a/backends/keymapper/remap-dialog.cpp +++ b/backends/keymapper/remap-dialog.cpp @@ -239,11 +239,15 @@ void RemapDialog::handleKeyDown(Common::KeyState state) { void RemapDialog::handleKeyUp(Common::KeyState state) { if (_activeRemapAction) { const HardwareKey *hwkey = _keymapper->findHardwareKey(state); + const HardwareMod *hwmod = _keymapper->findHardwareMod(state); debug(0, "Key: %d, %d (%c), %x", state.keycode, state.ascii, (state.ascii ? state.ascii : ' '), state.flags); if (hwkey) { - _activeRemapAction->mapKey(hwkey); + HardwareKey *temphwkey = new HardwareKey(*hwkey); + temphwkey->description = hwkey->description; + temphwkey->key.flags = hwmod->modFlags; + _activeRemapAction->mapKey(temphwkey); _activeRemapAction->getParent()->saveMappings(); _changes = true; stopRemapping(); |