发布前托管重绘与布局封版收口

收口 Dialog/overlay 后鼠标状态同步、Tooltip 临时 coverage 与持久 coverage 拆分、跨 root 脏区补提交、TextBox/Button 绘制副作用修复,并补充 KEY6 回归用例和 BUG/Fix/Feature 开发记录。
This commit is contained in:
Codex
2026-05-17 00:26:08 +08:00
parent 2388f22c99
commit 9155a86a8a
26 changed files with 1355 additions and 175 deletions
+4 -2
View File
@@ -105,6 +105,8 @@ public:
bool clearTransientMouseState() override;
// Tooltip 可见时,按钮实际写像素范围不再等于按钮本体,需要把 Tooltip 矩形并入 coverage。
RECT getManagedRepaintCoverageRect() const override;
// Button 的持久绘制范围只包含本体;Tooltip 是临时浮层,不能污染兄弟控件背景快照。
RECT getManagedRepaintPersistentCoverageRect() const override;
// 设置 NORMAL 模式下的点击回调
void setOnClickListener(std::function<void()> callback);
@@ -134,7 +136,7 @@ public:
void setButtonText(std::string text);
// 设置按钮几何形状
void setButtonShape(StellarX::ControlShape shape);
// 直接设置按钮点击状态;TOGGLE 模式下会按状态变化触发相应回调
// 直接设置按钮点击状态;NORMAL 设置为 true 时触发 onClickTOGGLE 仅在状态变化触发 on/off 回调
void setButtonClick(BOOL click);
// 查询按钮当前是否处于点击/选中状态
@@ -168,7 +170,7 @@ public:
void setTooltipDelay(int ms) { tipDelayMs = (ms < 0 ? 0 : ms); }
// 设置 Tooltip 是否跟随鼠标
void setTooltipFollowCursor(bool on) { tipFollowCursor = on; }
// 设置 Tooltip 相对鼠标/按钮的偏移量
// 设置 Tooltip 偏移量;当前仅在 setTooltipFollowCursor(true) 时参与定位
void setTooltipOffset(int dx, int dy) { tipOffsetX = dx; tipOffsetY = dy; }
// 设置 Tooltip 的文字、背景和透明样式
void setTooltipStyle(COLORREF text, COLORREF bk, bool transparent);