Files
StellarX-kaifa/开发记录/01-补充记录-20260409-窗口最大化收口保护.md
T
2026-04-09 04:19:56 +08:00

56 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 补充记录-20260409-窗口最大化收口保护
## 说明
- 本文件用于补充记录 2026-04-09 当天新增的窗口最大化收口问题。
- 对应修改发生在 `f567369` 快照之后,当前仍位于工作区未提交状态。
## 问题概述
- 现象:
- 某些窗口初始尺寸下,直接点击最大化会出现黑背景、控件残影。
- 若先手动拖拽窗口略微放大,再最大化,则问题消失。
- 影响用例:
- `KEY == 1`
- `KEY == 2`
- 不受影响用例:
- `KEY == 3`
- `KEY == 4`
## 根因
- [`Window.cpp`](D:/programming/imGUI-easyX/imGui-easyX/Window.cpp) 的 `runEventLoop()` resize 收口中存在一段历史“跨度保护”。
- 该保护把“宽高变化超过 1000”视为异常帧,直接终止收口:
- 不再执行 `adaptiveLayout`
- 不再执行 `Resize`
- 不再执行 `redrawScene(true, true)`
- 因此新暴露区域不会被完整刷新,最终表现为黑背景与残影。
## 本次新增记录
- BUG
- [`BUG-20260409-0003 直接最大化触发收口保护导致黑背景与残影`](./BUG/BUG-20260409-0003-直接最大化触发收口保护导致黑背景与残影.md)
- Fix
- [`Fix-BUG-20260409-0003 直接最大化触发收口保护导致黑背景与残影`](./Fix/Fix-BUG-20260409-0003-直接最大化触发收口保护导致黑背景与残影.md)
- 功能变更:
- [`Feature-20260409-0006 窗口最大化收口保护调整`](./功能变更/Feature-20260409-0006-窗口最大化收口保护调整.md)
## 修改摘要
- 将“跨度过大即跳过”改为“仅非法尺寸才跳过”。
- 非法尺寸标准:
- `actualWidth <= 0`
- `actualHeight <= 0`
- `actualWidth > max(10000, virtualScreenWidth * 2)`
- `actualHeight > max(10000, virtualScreenHeight * 2)`
- 对“大跨度但合法”的 resize 保留 `DEBUG` 日志,但继续执行完整收口。
- 顺手删除了 `Window.cpp` 中未使用的 `ExMessage mm;` 遗留变量。
## 当前状态
- 代码修改:已完成,待提交
- 文档记录:已补充
- 验证状态:
- 已完成源码级编译验证
- 待用户做 GUI 回归