Files
StellarX-kaifa/开发记录/BUG/BUG-20260511-0011-跨root回调改脏未同轮提交导致Label延迟刷新.md
Codex 9155a86a8a 发布前托管重绘与布局封版收口
收口 Dialog/overlay 后鼠标状态同步、Tooltip 临时 coverage 与持久 coverage 拆分、跨 root 脏区补提交、TextBox/Button 绘制副作用修复,并补充 KEY6 回归用例和 BUG/Fix/Feature 开发记录。
2026-05-17 00:26:08 +08:00

52 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BUG-20260511-0011
> 适用场景:记录问题本身,不展开完整修复方案。修复内容写入对应的 Fix 文档。
## 基本信息
- ID: BUG-20260511-0011
- 标题: 跨 root 回调改脏未同轮提交导致 Label 延迟刷新
- 状态:已修复
- 严重性:S3
- 优先级:P1
- 模块: Window / 托管重绘 / Label / TabControl
- 版本 / 分支: 当前工作区
- 环境: Windows / EasyX / KEY6
- 发现人: 用户
- 关联 Fix ID: Fix-BUG-20260511-0011
## 问题描述
- 现象: KEY6 中点击 Right 页签内按钮后,A 区状态 Label 不立即刷新,需要下一次左键消息才显示。
- 影响范围: 事件回调修改了另一个顶层 root 下的控件状态时,目标 root 可能不会进入本轮托管重绘队列。
- 期望结果: 回调中改脏的跨 root 控件能在同一轮事件尾刷新。
- 实际结果: 只有当前事件分发链所在 root 被提交,其他 root 的 dirty 子树滞留到下一次事件。
## 复现信息
- 前置条件:[可选] 打开 KEY6,激活右侧页签第一页。
- 复现步骤:
1. 点击 Right 页签中的“页内按钮”。
2. 观察 A 区状态 Label。
3. 再点击空白处或其他控件。
- 复现概率:必现
- 最小复现 DemoKEY6
- 证据:`Label::setText()` 只标脏目标 Label,不主动把其所属 `shapePanel` root 登记到 Window。
## 初步分析
- 疑似位置: `Window` 事件尾托管重绘收口。
- 触发条件: 当前事件 root 与被回调修改的目标 root 不同。
- 相关线索: A 区 Label 在下一次左键消息后才刷新,说明 dirty 状态存在但未同轮提交。
- 最近相关改动:[可选] 托管重绘统一收口。
## 跟踪信息
- 首次发现时间: 2026-05-11
- 最后更新时间: 2026-05-11
- 修复版本: 当前工作区
- 验证版本: KEY6 编译通过,待用户手测
- 备注:[可选]