2.4 KiB
2.4 KiB
BUG-20260929-0001
适用场景:记录问题本身,不展开完整修复方案。修复内容写入对应的 Fix 文档。
基本信息
- ID: BUG-20260929-0001
- 标题: Table 运行期重置后页码标签被旧分页按钮快照覆盖
- 状态:已修复
- 严重性:S2
- 优先级:P1
- 模块: Table / Label / Button / 背景快照
- 版本 / 分支: 当前工作区
- 环境: Windows / EasyX / KEY1
- 发现人: 用户
- 关联 Fix ID: Fix-BUG-20260929-0001
问题描述
- 现象: KEY1 页签 1 中点击页内按钮重置表头和数据后,分页区中间的页码标签只显示一部分;触发表格重绘或与其他页签按钮进行 hover 交互后恢复完整。
- 影响范围: Table 运行期数据变化导致表格宽度及分页控件位置同时变化的场景。
- 期望结果: 重置后的首帧立即完整显示新页码,不依赖后续 hover、翻页或页签重绘修复。
- 实际结果: 页码已经绘制,但随后移动的分页按钮回贴旧位置背景快照,覆盖了新页码的一部分。
复现信息
- 前置条件: 启动 KEY1 并进入页签 1。
- 复现步骤:
- 点击页签 1 内用于重置表格的“按钮”。
- 不移动鼠标,立即观察“上一页”和“下一页”之间的页码标签。
- 对表格或页签 2 按钮进行 hover 交互,触发后续重绘。
- 复现概率:稳定复现
- 最小复现 Demo:KEY1 页签 1
- 证据:用户截图中重置后的页码标签首帧显示不全,后续重绘恢复。
初步分析
- 疑似位置:
Table::drawPageNum()、Table::drawButton()和内部控件Control::setX()的调用顺序。 - 触发条件: 新旧表格宽度不同,分页 Label 和分页按钮需要同时横向移动。
- 相关线索:
- 旧顺序先绘制页码,再在
drawButton()中移动分页按钮。 - 分页按钮移动时会通过
discardBackground()回贴旧背景。 - 旧按钮区域与新页码区域相交,导致新页码被局部擦除。
- 旧顺序先绘制页码,再在
- 最近相关改动:[可选] Table 页码强制设脏和分页按钮整表重绘链已经存在,但未覆盖内部控件同帧搬移后的旧快照覆盖。
跟踪信息
- 首次发现时间: 2026-09-29
- 最后更新时间: 2026-09-30
- 修复版本: 当前工作区
- 验证版本: 2026-09-29 非 UI 全矩阵通过;2026-09-30 用户完成 KEY1 至 KEY6 手工回归,暂未发现明显问题
- 备注:[可选]