diff --git a/src/client/InputHandler.ts b/src/client/InputHandler.ts index 5dfc6cd2b..4a7fa9588 100644 --- a/src/client/InputHandler.ts +++ b/src/client/InputHandler.ts @@ -683,7 +683,7 @@ export class InputHandler { this.eventBus.emit(new WarshipSelectionBoxCancelEvent()); } } - + if (this.isMenuModifierPressed(event, this.keybinds.buildMenuModifier)) { this.suppressNextTap = false; this.eventBus.emit(new ShowBuildMenuEvent(event.clientX, event.clientY)); @@ -982,8 +982,11 @@ export class InputHandler { this.activeKeys.clear(); } - private isMenuModifierPressed(event: PointerEvent, modifierBind: string): boolean { - // Don't accept Shift: menus are meant to be modifier+click, + private isMenuModifierPressed( + event: PointerEvent, + modifierBind: string, + ): boolean { + // Don't accept Shift: menus are meant to be modifier+click, // but Shift+click is hardcoded for attack when leftClickOpensMenu is false. // Do allow other keys than strict modifier keys by definition (like "keyU"), // because non-modifier keys could already be assigned in UserSettingModal. diff --git a/src/client/UserSettingModal.ts b/src/client/UserSettingModal.ts index e7d055379..63866f761 100644 --- a/src/client/UserSettingModal.ts +++ b/src/client/UserSettingModal.ts @@ -87,7 +87,8 @@ export class UserSettingModal extends BaseModal { prevValue?: string; }>, ) { - let { action, value, key, prevValue } = e.detail; + const { action, value, prevValue } = e.detail; + let { key } = e.detail; console.info( "handleKeybindChange recieved value: " + value, @@ -631,9 +632,7 @@ export class UserSettingModal extends BaseModal { })} .defaultKey=${this.defaultKeybinds.attackRatioUp} .value=${this.getKeyValue(KeybindAction.attackRatioUp)} - .display=${formatKeyForDisplay( - this.getKeyValue(KeybindAction.attackRatioUp as KeybindAction) || "", - )} + .display=${this.getKeyChar(KeybindAction.attackRatioUp)} @change=${this.handleKeybindChange} > @@ -680,22 +679,22 @@ export class UserSettingModal extends BaseModal { diff --git a/src/client/Utils.ts b/src/client/Utils.ts index 33c979918..2de76bf6d 100644 --- a/src/client/Utils.ts +++ b/src/client/Utils.ts @@ -382,7 +382,7 @@ export function formatKeyForDisplay(value: string): string { ShiftLeft: "Shift ⇧", ShiftRight: "Shift ⇧", Control: "Ctrl", - // "Alt Gr" emits ControlLeft+Alt in Windows on many keyboard layouts and we catch the first code. + // "Alt Gr" emits ControlLeft+Alt in Windows on many keyboard layouts and we catch the first code. // Is undiscernable normally from ControlLeft but user sees "alt gr" on the key so display it too ControlLeft: "Ctrl / Alt Gr", ControlRight: "Ctrl", diff --git a/src/client/components/baseComponents/setting/SettingKeybind.ts b/src/client/components/baseComponents/setting/SettingKeybind.ts index db2d15a80..df6b51731 100644 --- a/src/client/components/baseComponents/setting/SettingKeybind.ts +++ b/src/client/components/baseComponents/setting/SettingKeybind.ts @@ -140,7 +140,7 @@ export class SettingKeybind extends LitElement { const prevValue = this.value; // Temporarily set the value to the new code for validation in parent - this.value = code; + this.value = code; const event = new CustomEvent("change", { detail: { action: this.action, value: code, key: displayKey, prevValue }, diff --git a/src/core/game/UserSettings.ts b/src/core/game/UserSettings.ts index d0b186b50..20eb7852b 100644 --- a/src/core/game/UserSettings.ts +++ b/src/core/game/UserSettings.ts @@ -27,7 +27,7 @@ export enum KeybindAction { boatAttack = "boatAttack", groundAttack = "groundAttack", breakAlliance = "breakAlliance", - swapDirection = "swapDirection", + requestAlliance = "requestAlliance", swapDirection = "swapDirection", zoomOut = "zoomOut", zoomIn = "zoomIn", diff --git a/tests/InputHandler.test.ts b/tests/InputHandler.test.ts index 1a45d894c..ca6b3a006 100644 --- a/tests/InputHandler.test.ts +++ b/tests/InputHandler.test.ts @@ -872,6 +872,7 @@ describe("InputHandler AutoUpgrade", () => { expect(uiState.ghostStructure).toBe(UnitType.City); }); }); +}); describe("Warship box selection (Shift+drag)", () => { let inputHandler: InputHandler;