diff --git a/tabby-core/src/services/hotkeys.service.ts b/tabby-core/src/services/hotkeys.service.ts index 7c4bcc5c..3e6b1559 100644 --- a/tabby-core/src/services/hotkeys.service.ts +++ b/tabby-core/src/services/hotkeys.service.ts @@ -130,9 +130,7 @@ export class HotkeysService { const keyName = getKeyName(eventData) if (eventName === 'keydown') { this.addPressedKey(keyName, eventData) - if (!nativeEvent.repeat) { - this.recognitionPhase = true - } + this.recognitionPhase = true this.updateModifiers(eventData) } if (eventName === 'keyup') { @@ -158,8 +156,10 @@ export class HotkeysService { const matched = this.matchActiveHotkey() this.zone.run(() => { - if (matched && this.recognitionPhase) { - this.emitHotkeyOn(matched) + if (matched) { + if (this.recognitionPhase) { + this.emitHotkeyOn(matched) + } } else if (this.pressedHotkey) { this.emitHotkeyOff(this.pressedHotkey) } @@ -288,10 +288,9 @@ export class HotkeysService { private emitHotkeyOn (hotkey: string) { if (this.pressedHotkey) { - if (this.pressedHotkey === hotkey) { - return + if (this.pressedHotkey !== hotkey) { + this.emitHotkeyOff(this.pressedHotkey) } - this.emitHotkeyOff(this.pressedHotkey) } if (document.querySelectorAll('input:focus').length === 0) { console.debug('Matched hotkey', hotkey)