浏览代码

fix: keybindings should only be activated when whiteboard is focused

Peng Xiao 3 年之前
父节点
当前提交
880d7b02c8
共有 1 个文件被更改,包括 8 次插入4 次删除
  1. 8 4
      tldraw/packages/react/src/hooks/useKeyboardEvents.ts

+ 8 - 4
tldraw/packages/react/src/hooks/useKeyboardEvents.ts

@@ -10,13 +10,17 @@ export function useKeyboardEvents(ref: React.RefObject<HTMLDivElement>) {
 
   React.useEffect(() => {
     const onKeyDown: TLReactCustomEvents['keyboard'] = e => {
-      callbacks.onKeyDown?.({ type: TLTargetType.Canvas, order: -1 }, e)
-      shiftKeyDownRef.current = e.shiftKey
+      if (ref.current?.contains(document.activeElement)) {
+        callbacks.onKeyDown?.({ type: TLTargetType.Canvas, order: -1 }, e)
+        shiftKeyDownRef.current = e.shiftKey
+      }
     }
 
     const onKeyUp: TLReactCustomEvents['keyboard'] = e => {
-      callbacks.onKeyUp?.({ type: TLTargetType.Canvas, order: -1 }, e)
-      shiftKeyDownRef.current = e.shiftKey
+      if (ref.current?.contains(document.activeElement)) {
+        callbacks.onKeyUp?.({ type: TLTargetType.Canvas, order: -1 }, e)
+        shiftKeyDownRef.current = e.shiftKey
+      }
     }
 
     const onPaste = (e: ClipboardEvent) => {