Fix/修复无限画布图标文字模糊 #285
Reference in New Issue
Block a user
Delete Branch "fix/blur-font"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
closes #279
closes #284
实现: 从2(暂定)倍放大绘制的画布scale 0.5* 真正的scale
before:


after:


svg看起来stroke窄了一点点, 可以接受
cfbc6c36a5tof24949f732审查结论:request changes。阻塞问题:packages/image-canvas-react/src/useImageCanvasStageInteractions.ts:345-350 仍只在 event.target 是 viewport 或 classList 包含 .genarrative-image-canvas__world 时创建框选。PR 在 CanvasWorld.tsx:41-50 新增 .genarrative-image-canvas__world-content 包裹层,实际点击/拖拽空白画布时 target 会是该内层 div,条件不成立,因此空白区域只能清焦点,无法创建选择框;现有 hook 单测手动把外层 world 作为 target,未覆盖真实 DOM。请改用 target.closest(.genarrative-image-canvas__world) 或保留内层命中契约,并补真实 DOM 回归测试。
请求修改:资源画布缩小时,音频/视频播放按钮会越过卡片边界并被裁切,详见行内评论。
上一轮 world-content 空白区域不能框选的问题已经修复。当前提交的共享画布、网站画布、素材画布和 AppSurface 共 6 个文件、588 项测试通过。
使用当前 CanvasWorld 和资源卡 CSS 在真实 Chromium 中验证:viewport.scale=0.5 时播放按钮越界 3.5px,scale=0.25 时越界 10.25px,底部被裁切区域不能点击;将缩放原点改为右下角后这两个比例下均回到卡片内部。现有 jsdom 测试未覆盖这项渲染与命中检查。远端 4 项 CI 仍在排队。
@@ -5976,0 +5979,4 @@.game-resource-card-media-control {transform: scale(var(--genarrative-image-canvas-inverse-scale, 1));transform-origin: center;[P2] 将固定屏幕尺寸的播放控件锚定在卡片内
播放按钮原有 right/bottom 都是 9px、尺寸 34px,这里按 inverse-scale 放大并以中心为原点,会向右下方额外扩张;父级 .game-resource-card 又设置了 overflow:hidden。因此正常缩小画布时按钮会被裁切,部分点击区域丢失。真实 Chromium 中,scale=0.5 和 0.25 分别向右/下越界 3.5px、10.25px。请改为与 right/bottom 一致的右下角缩放原点,或补偿定位偏移,并验证小于 1 的缩放下整个播放按钮仍位于卡片内且可命中。
审查 head sha:
25df114b93未发现明确问题。已检查本次变更及相关测试;针对画布超采样渲染和交互路径的现有测试通过。