54 lines
2.2 KiB
Markdown
54 lines
2.2 KiB
Markdown
# 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 橙区。
|
||
- 复现步骤:
|
||
|
||
1. 打开 KEY5。
|
||
2. 将鼠标移到 C 米区容器内按钮上,触发 Tooltip。
|
||
3. 观察 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` 额外绘制,不属于按钮本体矩形
|
||
- 最近相关改动:顶层 overlay 传递式补画机制已补齐,但 coverage 仍按本体矩形计算
|
||
|
||
## 跟踪信息
|
||
|
||
- 首次发现时间: 2026-04-15
|
||
- 最后更新时间: 2026-04-15
|
||
- 修复版本:当前工作区
|
||
- 验证版本:KEY5 编译级验证通过,待用户手测
|
||
- 备注:Tooltip 智能选位明确后置,本次只修根因链路
|