mirror of
https://github.com/basketikun/infinite-canvas.git
synced 2026-07-28 02:34:28 +08:00
fix(canvas): 防止空格平移误触弹窗按钮
This commit is contained in:
@@ -5,4 +5,4 @@ description: 当前版本已实现但仍需人工验证的变更项
|
||||
|
||||
# 待测试
|
||||
|
||||
- 图片编辑弹窗:遮罩、切图和裁剪支持滚轮缩放、中键或空格加左键平移;遮罩支持撤回/重做、Alt 加左/右键横拖调整笔刷;切图支持选中线后 Delete 删除及撤回/重做;裁剪支持固定当前比例、原图、1:1、4:3、16:9、9:16,需验证高分辨率图片下无重影、闪烁或误触。
|
||||
- 图片编辑弹窗:遮罩、切图和裁剪支持滚轮缩放、中键或空格加左键平移;聚焦弹窗按钮后按空格应只进入平移模式,不能误触关闭或其他按钮;遮罩支持撤回/重做、Alt 加左/右键横拖调整笔刷;切图支持选中线后 Delete 删除及撤回/重做;裁剪支持固定当前比例、原图、1:1、4:3、16:9、9:16,需验证高分辨率图片下无重影、闪烁或误触。
|
||||
|
||||
@@ -37,11 +37,18 @@ export function useImageEditorViewport(image: ImageSize | null, open: boolean) {
|
||||
const target = event.target instanceof Element ? event.target : null;
|
||||
if (target?.closest("input,textarea,[contenteditable='true']")) return;
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
event.stopImmediatePropagation();
|
||||
if (document.activeElement instanceof HTMLElement && document.activeElement.matches("button,a,[role='button']")) document.activeElement.blur();
|
||||
spacePressedRef.current = true;
|
||||
setSpacePressed(true);
|
||||
};
|
||||
const handleKeyUp = (event: KeyboardEvent) => {
|
||||
if (event.code === "Space") releaseSpace();
|
||||
if (event.code !== "Space" || !spacePressedRef.current) return;
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
event.stopImmediatePropagation();
|
||||
releaseSpace();
|
||||
};
|
||||
window.addEventListener("keydown", handleKeyDown, true);
|
||||
window.addEventListener("keyup", handleKeyUp, true);
|
||||
|
||||
Reference in New Issue
Block a user