From 79dcd79734848e25ed736183f638a54c012c59f0 Mon Sep 17 00:00:00 2001 From: Dimava Date: Sat, 30 May 2020 10:57:02 +0300 Subject: [PATCH] use MouseEvent in keybind change hooks --- src/js/game/key_action_mapper.js | 10 ++++++++++ src/js/states/keybindings.js | 17 ++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/js/game/key_action_mapper.js b/src/js/game/key_action_mapper.js index 60690934..bd49d29e 100644 --- a/src/js/game/key_action_mapper.js +++ b/src/js/game/key_action_mapper.js @@ -86,6 +86,16 @@ for (const categoryId in KEYMAPPINGS) { */ export function getStringForKeyCode(code) { switch (code) { + case 0: + return "LMB"; + case 1: + return "MMB"; + case 2: + return "RMB"; + case 3: + return "MB4"; + case 4: + return "MB5"; case 8: return "⌫"; case 9: diff --git a/src/js/states/keybindings.js b/src/js/states/keybindings.js index 0f7fcf9e..f4aad427 100644 --- a/src/js/states/keybindings.js +++ b/src/js/states/keybindings.js @@ -121,9 +121,24 @@ export class KeybindingsState extends TextualGameState { this.updateKeybindings(); }); - dialog.inputReciever.backButton.add(() => {}); + const clickListener = event => { + console.log(event); + if (event.target.tagName == "BUTTON") { + return; + } + event.preventDefault(); + const keyCode = event.button; + this.app.settings.updateKeybindingOverride(id, keyCode); + + this.dialogs.closeDialog(dialog); + this.updateKeybindings(); + }; + + dialog.inputReciever.backButton.add(() => {}); this.dialogs.internalShowDialog(dialog); + dialog.element.onmousedown = clickListener; + this.app.sound.playUiSound(SOUNDS.dialogOk); }