2.2 KiB
2.2 KiB
BUG-20260415-0007
适用场景:记录问题本身,不展开完整修复方案。修复内容写入对应的 Fix 文档。
基本信息
- ID: BUG-20260415-0007
- 标题: 实际绘制 coverage 低估导致 Tooltip 与 overlay 补画漏算
- 状态:已修复
- 严重性:S2
- 优先级:P1
- 模块: Tooltip / overlay 重组 / 托管 coverage
- 版本 / 分支: 当前工作区
- 环境: Windows / EasyX / KEY5 回归场景
- 发现人: 用户
- 关联 Fix ID:Fix-BUG-20260415-0007
问题描述
- 现象: C 米区容器内按钮 Tooltip 会画到 D 橙区上层;类似问题也可能出现在带附加绘制区域的其他控件上。
- 影响范围: Tooltip、页签按钮 Tooltip、内部按钮与浮层、overlay 补画依赖 coverage 的所有链路。
- 期望结果: overlay 补画应按“实际写到屏幕上的区域”判断,而不是只按控件本体 bounds。
- 实际结果: 按钮本体未与上层控件相交时,Tooltip 超出部分不会触发 overlay 补画,导致 Tooltip 压到不应被压住的上层控件之上。
复现信息
- 前置条件: 使用 KEY5,保证 C 米区按钮 Tooltip 会伸进 D 橙区。
- 复现步骤:
- 打开 KEY5。
- 将鼠标移到 C 米区容器内按钮上,触发 Tooltip。
- 观察 Tooltip 与 D 橙区的遮挡关系。
- 复现概率:必现
- 最小复现 Demo:KEY5 C / D 交界区
- 证据:Tooltip 可见区域超出按钮 bounds,但 overlay 补画未跟上
初步分析
- 疑似位置: Button Tooltip coverage、Window/Canvas/TabControl 的 coverage 计算链
- 触发条件: 控件本体 bounds 未与 overlay 相交,但附加绘制区域(例如 Tooltip)已伸入 overlay 区
- 相关线索:
- 之前的 coverage 默认等于
getBoundsRect() Button的 Tooltip 由tipLabel额外绘制,不属于按钮本体矩形
- 之前的 coverage 默认等于
- 最近相关改动:顶层 overlay 传递式补画机制已补齐,但 coverage 仍按本体矩形计算
跟踪信息
- 首次发现时间: 2026-04-15
- 最后更新时间: 2026-04-15
- 修复版本:当前工作区
- 验证版本:KEY5 编译级验证通过,待用户手测
- 备注:Tooltip 智能选位明确后置,本次只修根因链路