1
1
mirror of https://github.com/Eugeny/tabby.git synced 2024-12-24 19:13:31 +03:00

fixed repeated hotkeys canceling themselves - fixes #5406, fixes #4566

This commit is contained in:
Eugene Pankov 2022-01-30 17:51:21 +01:00
parent 95152456ce
commit b664b9eed9
No known key found for this signature in database
GPG Key ID: 5896FCBBDD1CF4F4

View File

@ -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)