From d456b97eaf6f876bd853a3854eabd0f2b241c524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Fri, 4 Sep 2026 12:55:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E5=B7=A5=E5=85=B7=E6=A0=8F?= =?UTF-8?q?=E8=81=9A=E7=84=A6=E6=97=B6=E6=92=A4=E9=94=80=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将删除快捷键的交互控件过滤与撤销重做的可编辑目标过滤分离 避免按钮和链接聚焦时意外屏蔽 Ctrl/Cmd+Z/Y --- apps/ai-game-creator-shell/src/view/ui-editor/index.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/ai-game-creator-shell/src/view/ui-editor/index.tsx b/apps/ai-game-creator-shell/src/view/ui-editor/index.tsx index 45f371aa6..8476fbe08 100644 --- a/apps/ai-game-creator-shell/src/view/ui-editor/index.tsx +++ b/apps/ai-game-creator-shell/src/view/ui-editor/index.tsx @@ -88,6 +88,13 @@ export default function UiEditorPage({ }, [session.save.isDirty]); useEffect(() => { + const isEditableTarget = (target: EventTarget | null) => { + const element = target instanceof HTMLElement ? target : null; + return Boolean( + element?.isContentEditable || + element?.closest('input, textarea, select, [contenteditable="true"]'), + ); + }; const isInteractiveTarget = (target: EventTarget | null) => { const element = target instanceof Element ? target : null; return Boolean( @@ -120,7 +127,7 @@ export default function UiEditorPage({ if ( event.repeat || event.defaultPrevented || - isInteractiveTarget(event.target) || + isEditableTarget(event.target) || (!event.ctrlKey && !event.metaKey) ) { return;