feat: 无限画布滚轮缩放 + 项目管理入口 (0.0.26)
画布交互: - 滚轮缩放视口(2%~1600%),纯滚轮 10%/tick,Ctrl/Cmd+滚轮 3%/tick 精细控制 - 鼠标拖拽平移画布,Ctrl/Cmd+0 重置缩放 - 预览打开时锁定底层视口(previewActiveRef 事件穿透防护) - 预览内图片独立滚轮缩放 + 拖拽平移 + 缩放指示器 文件拖拽: - 画布缩略图/预览支持原生文件拖拽到外部应用(startDrag IPC) Bug 修复: - local-media:// 协议支持 UNC 网络路径 - passive event listener 报错:window 级原生 wheel listener 替代 React onWheel - Zustand v5 getState() 批处理旧值:改用 ref(currentZoomRef + setZoomRef)读写 主进程(electron/main.ts): - 画布窗口 before-input-event 拦截 Chromium 页面缩放 - 新增 canvas-ipc.ts(startDrag、文件扫描等 IPC handler)
This commit is contained in:
@@ -12,6 +12,10 @@ export const MAIN_TO_RENDERER = {
|
||||
WINDOW_FOCUSED: 'window-focused',
|
||||
/** 窗口失焦通知 */
|
||||
WINDOW_BLURRED: 'window-blurred',
|
||||
/** 画布窗口准备就绪 */
|
||||
CANVAS_READY: 'canvas:ready',
|
||||
/** 画布扫描进度 */
|
||||
CANVAS_SCAN_PROGRESS: 'canvas:scan-progress',
|
||||
} as const;
|
||||
|
||||
/** 渲染进程 → 主进程 */
|
||||
@@ -32,6 +36,8 @@ export const RENDERER_TO_MAIN = {
|
||||
CLOSE_WINDOW: 'close-window',
|
||||
/** 渲染进程日志上报 */
|
||||
LOG_MESSAGE: 'log-message',
|
||||
/** 画布:打开无限画布窗口 */
|
||||
OPEN_CANVAS_WINDOW: 'canvas:open-window',
|
||||
} as const;
|
||||
|
||||
/** 双向通信通道 */
|
||||
@@ -62,4 +68,28 @@ export const BIDIRECTIONAL = {
|
||||
FILE_SIZE: 'storage:file-size',
|
||||
/** 文件/目录是否存在 */
|
||||
FILE_EXISTS: 'storage:file-exists',
|
||||
/** 画布:扫描目录 */
|
||||
CANVAS_SCAN_DIRECTORY: 'canvas:scan-directory',
|
||||
/** 画布:扫描项目(接收 projectPath,主进程内部完成 buildScanRoots + walkDirectory) */
|
||||
CANVAS_SCAN_PROJECT: 'canvas:scan-project',
|
||||
/** 画布:读取 sidecar 元数据 */
|
||||
CANVAS_READ_SIDECAR: 'canvas:read-sidecar',
|
||||
/** 画布:写入 sidecar 元数据 */
|
||||
CANVAS_WRITE_SIDECAR: 'canvas:write-sidecar',
|
||||
/** 画布:生成缩略图 */
|
||||
CANVAS_GENERATE_THUMBNAIL: 'canvas:generate-thumbnail',
|
||||
/** 画布:复制文件(导入) */
|
||||
CANVAS_COPY_FILE: 'canvas:copy-file',
|
||||
/** 画布:获取原生图片尺寸 */
|
||||
CANVAS_GET_IMAGE_SIZE: 'canvas:get-image-size',
|
||||
/** 画布:列出目录下的子文件夹(非递归,排除隐藏) */
|
||||
CANVAS_LIST_SUBDIRS: 'canvas:list-subdirs',
|
||||
/** 画布:扫描阶段文件(单个 episode/shot/stage 组合) */
|
||||
CANVAS_SCAN_STAGE_FILES: 'canvas:scan-stage-files',
|
||||
/** 画布:扫描资产文件(深度递归扫描 assets/ 目录) */
|
||||
CANVAS_SCAN_ASSET_FILES: 'canvas:scan-asset-files',
|
||||
/** 画布:创建目录 */
|
||||
CANVAS_CREATE_DIRECTORY: 'canvas:create-directory',
|
||||
/** 画布:启动原生文件拖拽(拖放媒体文件到外部应用) */
|
||||
CANVAS_START_DRAG: 'canvas:start-drag',
|
||||
} as const;
|
||||
|
||||
Reference in New Issue
Block a user