Skip to content

fix(canvas): 自审 C4 / C5——提示词条让开左下缩放条、产物落点取第一个空格 - #294

Merged
KerroKapple merged 1 commit into
mainfrom
fix/layout-placement-audit
Oct 14, 2026
Merged

KerroKapple merged 1 commit into
mainfrom
fix/layout-placement-audit

Conversation

@KerroKapple

Copy link
Copy Markdown
Owner

背景

画布重设计合完后做了自审,这个 PR 修其中 C 组的两条布局 / 落点问题。

修了什么

C4 提示词条盖住左下缩放条

  • 现象:窗宽 1280、左右两栏都开着时,舞台宽 697。提示词条宽 480 居中摆放,左沿落在 108.5,把缩放条的「适应」整格和「+」的一半都盖住了,连泳道工具栏也被压住。只要选中一张图像或视频配置卡(提示词条就会出现),这几个键就点不到。
  • 改法:条子居中如果会压到左下这一簇(缩放条,加上叠在它上面的泳道工具栏),就改成在这一簇右边剩下的那段里居中;那段放不下就把条子收窄。
  • 新增令牌 InkToolbarSize.stageBottomLeftReserve(176),表示这一簇占的宽度。外壳布局测试会守着两条控件的右沿加间隙都落在这个宽度以内:以后谁改了缩放条或泳道工具栏的宽度,这条测试会提醒同步调整令牌。

上:修复前,提示词条盖住「适应」「+」和泳道工具栏;下:修复后

C5 删掉中间的产物后,新产物叠在最后一张上

  • 原来落点按「这个配置名下现存几个产物」取第 k 格。比如第 0、1、2 格各有一张,删掉第 0 格那张后数出来是 2,下一个产物就落在第 2 格,和原来那张完全重合。
  • 改法:新增 nextResultSlot,取这一列里第一个空着的格。判断是否占格时容差 1px;被用户拖离格位的产物不算占格。

验证

  • flutter analyze lib test:无问题。
  • flutter test --exclude-tags golden:3293 通过,0 失败。
  • 变异实测 4 条全部变红:
    • 提示词条一律居中
    • 预留宽度装不下这一簇
    • 落点按数量算
    • 生成路径退回按现存数量取格
  • 有一条现有用例原来造的产物行没带坐标,按新规则(不在格位上的产物不占格)已改成带格位坐标。另外新增一条「删掉中间那张后再生成」。

「适应全部」底部让出提示词条的改动要动 canvas_tool_actions.dart,这个文件另一个修复 PR 正在改,等它合并后再做。

自审修复 2 / 4。

🤖 Generated with Claude Code

- 提示词条居中会压到左下那一簇(缩放条 + 泳道工具栏)时,改在右边那段里居中、放不下再收窄:窗宽
  1280、左右栏都开时原来「适应」「+」整格被盖住。新令牌 InkToolbarSize.stageBottomLeftReserve,外壳
  布局测试守着两条的右沿都落在预留宽度里。
- 产物落点取这一列第一个空着的格(nextResultSlot),不再按现存数量:删掉中间一张后,下一个产物原来
  正好叠在最后一张上。被拖离格位的产物不占格。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@KerroKapple
KerroKapple merged commit 31ece2e into main Oct 14, 2026
5 checks passed
@KerroKapple
KerroKapple deleted the fix/layout-placement-audit branch October 14, 2026 18:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant