diff --git a/packages/editor-core/src/hotkey.ts b/packages/editor-core/src/hotkey.ts index dd1bf97c9..f6ce6f47d 100644 --- a/packages/editor-core/src/hotkey.ts +++ b/packages/editor-core/src/hotkey.ts @@ -368,10 +368,16 @@ export class Hotkey { private nextExpectedAction: boolean | string = false; + private isActivate = true; + constructor(readonly name: string = 'unknown') { this.mount(window); } + activate(activate: boolean): void { + this.isActivate = activate; + } + mount(window: Window) { const { document } = window; const handleKeyEvent = this.handleKeyEvent.bind(this); @@ -546,6 +552,9 @@ export class Hotkey { } private handleKeyEvent(e: KeyboardEvent): void { + if (!this.isActivate) { + return; + } const character = characterFromEvent(e); // no character found then stop diff --git a/packages/workspace/src/base-context.ts b/packages/workspace/src/base-context.ts index 237880a65..263df227a 100644 --- a/packages/workspace/src/base-context.ts +++ b/packages/workspace/src/base-context.ts @@ -80,7 +80,6 @@ export class BasicContext { editor.set('material', material); editor.set('hotkey', hotkey); editor.set('innerHotkey', innerHotkey); - innerHotkey.mount(window); this.innerSetters = innerSetters; this.innerSkeleton = innerSkeleton; this.skeleton = skeleton; diff --git a/packages/workspace/src/editor-view/context.ts b/packages/workspace/src/editor-view/context.ts index c9972453f..1880ab26b 100644 --- a/packages/workspace/src/editor-view/context.ts +++ b/packages/workspace/src/editor-view/context.ts @@ -16,6 +16,7 @@ export class Context extends BasicContext { setActivate = (_activate: boolean) => { this._activate = _activate; + this.innerHotkey.activate(this._activate); }; get active() {