2.7 KiB
2.7 KiB
BUG-20260415-0008
适用场景:记录问题本身,不展开完整修复方案。修复内容写入对应的 Fix 文档。
基本信息
- ID: BUG-20260415-0008
- 标题: TabControl 页签层级与重复激活链路导致 Tooltip 和残影异常
- 状态:已修复
- 严重性:S2
- 优先级:P1
- 模块: TabControl / 页签绘制 / 外部激活页签
- 版本 / 分支: 当前工作区
- 环境: Windows / EasyX / KEY1 / KEY5
- 发现人: 用户
- 关联 Fix ID:Fix-BUG-20260415-0008
问题描述
- 现象:
- 有任意页签打开时,页签按钮 Tooltip 无法正常显示,只有全部页签关闭时正常。
- KEY1 中页签 1 的表格超出 TabControl 区域,外部按钮重复激活同一页签后,再切页或关闭页签会留下超出部分残影。
- 影响范围: TabControl 页签按钮 Tooltip、外部
setActiveIndex()重复调用、页内超出页面边界绘制的控件。 - 期望结果:
- 页签按钮应始终位于页面之上,Tooltip 正常显示。
- 外部重复激活已激活页签不应破坏当前可见页面的快照链。
- 实际结果:
- 页签按钮 Tooltip 会被页面盖掉。
- 外部重复激活同一页签后,页内超出页面区域的 Table 在切页/关页时会残留。
复现信息
- 前置条件:
- KEY5:存在可见页面和页签按钮 Tooltip
- KEY1:页签 1 内的 Table 长于 TabControl 页面区域,存在外部按钮
test
- 复现步骤:
- 在 KEY5 中打开任意页签,将鼠标移到页签按钮上触发 Tooltip。
- 观察 Tooltip 是否被页面盖掉。
- 在 KEY1 中点击一次
test激活页签 1。 - 再点击一次
test,然后切页或关闭页签 1。
- 复现概率:必现
- 最小复现 Demo:KEY5 TabControl 区、KEY1 页签 1 + 外部
test按钮 - 证据:Tooltip 被页面覆盖;重复激活后切页/关页出现残影
初步分析
- 疑似位置:
TabControl::draw()TabControl::requestRepaint()TabControl::setActiveIndex()Button::setButtonClick()
- 触发条件:
- 页签按钮先画、页面后画
TOGGLE同状态重复 set 仍触发 onToggleOn
- 相关线索:
- 页面绘制层级高于页签按钮时,页签 Tooltip 会被后画的页面盖掉
- 重复激活已激活页签会重复执行页面
onWindowResize()/setIsVisible(true)链
- 最近相关改动:TabControl overlay / Tooltip 回归专项修复
跟踪信息
- 首次发现时间: 2026-04-15
- 最后更新时间: 2026-04-15
- 修复版本:当前工作区
- 验证版本:KEY1 / KEY5 编译级验证通过,待用户手测
- 备注:本次只修页签层级和重复激活链路,不扩到 TabControl 其它内部布局语义