发布前托管重绘与布局封版收口

收口 Dialog/overlay 后鼠标状态同步、Tooltip 临时 coverage 与持久 coverage 拆分、跨 root 脏区补提交、TextBox/Button 绘制副作用修复,并补充 KEY6 回归用例和 BUG/Fix/Feature 开发记录。
This commit is contained in:
Codex
2026-05-17 00:26:08 +08:00
parent 2388f22c99
commit 9155a86a8a
26 changed files with 1355 additions and 175 deletions
@@ -0,0 +1,55 @@
# Fix-BUG-20260511-0009
> 适用场景:记录某个 BUG 的修复方案、影响评估、验证结果与落地信息。
## 关联信息
- Fix ID: Fix-BUG-20260511-0009
- 关联 BUG ID: BUG-20260511-0009
- 修复目标: 保证 `TabControl::indexOf()` 未命中时返回 `-1`
- 状态:已完成
- 负责人: Codex
- 分支 / 版本: 当前工作区
## 根因分析
- 根因: `indexOf()` 循环结束后直接返回 `idx`,没有显式处理未命中分支。
- 触发条件: 查询不存在的页签文本。
- 为什么之前没发现:[可选] 当前测试更多关注页签切换行为,未覆盖未命中返回值。
- 关键证据:[可选] `TabControl.cpp` 旧实现未命中路径返回最后索引。
## 修复方案
- 修复思路: 未找到匹配项时显式返回 `-1`
- 关键改动: 将 `TabControl::indexOf()` 末尾返回值从 `idx` 改为 `-1`
- 涉及文件 / 类 / 函数: `TabControl.cpp::TabControl::indexOf`
- 影响的 API / 行为:[可选] 行为修正;符合函数语义。
- 关键约束 / 不变量:[可选] 找到时仍返回真实索引。
- 回滚点 / 开关:[可选] 无
## 影响评估
- 影响范围: 仅影响 `indexOf()` 未命中返回值。
- 兼容性影响:无
- 行为变化:有(未命中从最后索引修正为 `-1`
- 性能影响:无
- 回归风险: 低
## 验证结果
- 验证步骤:
1. 编译 `TabControl.cpp`
2. 编译 `z-testDome.cpp``KEY1 ~ KEY6`
3. 静态确认未命中路径返回 `-1`
- 验证结果: 编译通过
- 回归检查:[可选] KEY1 ~ KEY6 编译级回归通过
- 验证证据:[可选]
## 落地信息
- Commit: 未提交
- PR[可选]
- 发布版本:[可选]
- 备注:[可选]