more hotkey fixes

This commit is contained in:
Eugene Pankov 2021-08-06 09:52:34 +02:00
parent 08f1ad4c75
commit eadd8d563e
No known key found for this signature in database
GPG Key ID: 5896FCBBDD1CF4F4
2 changed files with 10 additions and 6 deletions

View File

@ -128,7 +128,7 @@ export class HotkeysService {
const keyName = getKeyName(eventData)
if (eventName === 'keydown') {
this.addPressedKey(eventData)
this.addPressedKey(keyName, eventData)
this.shouldSaveNextKeystroke = true
this.updateModifiers(eventData)
}
@ -272,6 +272,9 @@ export class HotkeysService {
if (!event[prop] && this.pressedKeys.has(key)) {
this.removePressedKey(key)
}
if (event[prop] && !this.pressedKeys.has(key)) {
this.addPressedKey(key, event)
}
}
}
@ -324,8 +327,7 @@ export class HotkeysService {
return keys
}
private addPressedKey (eventData: KeyEventData) {
const keyName = getKeyName(eventData)
private addPressedKey (keyName: KeyName, eventData: KeyEventData) {
this.pressedKeys.add(keyName)
this.pressedKeyTimestamps.set(keyName, eventData.registrationTime)
}

View File

@ -48,12 +48,14 @@ export class HotkeyInputModalComponent extends BaseComponent {
) {
super()
this.hotkeys.clearCurrentKeystrokes()
this.subscribeUntilDestroyed(hotkeys.keystroke$, (keystroke) => {
this.lastKeyEvent = performance.now()
this.value.push(keystroke)
this.subscribeUntilDestroyed(hotkeys.keyEvent$, event => {
event.preventDefault()
event.stopPropagation()
})
this.subscribeUntilDestroyed(hotkeys.keystroke$, keystroke => {
this.lastKeyEvent = performance.now()
this.value.push(keystroke)
})
}
splitKeys (keys: string): string[] {