소스 검색

more hotkey fixes

Eugene Pankov 4 년 전
부모
커밋
eadd8d563e
2개의 변경된 파일10개의 추가작업 그리고 6개의 파일을 삭제
  1. 5 3
      tabby-core/src/services/hotkeys.service.ts
  2. 5 3
      tabby-settings/src/components/hotkeyInputModal.component.ts

+ 5 - 3
tabby-core/src/services/hotkeys.service.ts

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

+ 5 - 3
tabby-settings/src/components/hotkeyInputModal.component.ts

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