From 65b66f723294dd02174d30a67a05b88139f274ee Mon Sep 17 00:00:00 2001 From: Ariver <shanghai3168@gmail.com> Date: Fri, 29 May 2026 05:12:04 +0800 Subject: [PATCH] Extract overlay window controller --- TODO.md | 22 ++++++++++++---------- 1 files changed, 12 insertions(+), 10 deletions(-) diff --git a/TODO.md b/TODO.md index 2d13d3c..ce466f2 100644 --- a/TODO.md +++ b/TODO.md @@ -13,16 +13,6 @@ ## Todo -- [2026-05-28] Quick Search 独立面板化。 - - 目标: 从主 overlay 里拆出来,做 Spotlight 风格独立 `NSPanel`。 - - 风险: 高,涉及焦点、Esc、外部点击、全局快捷键、窗口层级。 - - 验收: 普通桌面、全屏、Split View、Settings 同时存在时都不跳 Space。 - -- [2026-05-28] OverlayWindowController 收口。 - - 目标: 把 `AppDelegate` 里的 overlay 显示、隐藏、层级、屏幕选择拆出去。 - - 时机: Quick Search 窗口边界稳定后再做。 - - 验收: 全屏、Split View、Settings、Force Quit、文件面板、Dock 图标重复问题。 - - [2026-05-28] AppLibraryController / 数据刷新管线整理。 - 目标: 把扫描、reconcile、Smart Start、annotate、Quick Search documents 更新从 `ContentView` 中抽离。 - 验收: 启动扫描、拖拽改标签、Quick Search 索引同步、新安装 App 后刷新。 @@ -33,6 +23,18 @@ ## Done +- [2026-05-29] OverlayWindowController 收口。 + - 提交: 本次提交 + - 结果: 新增 `OverlayWindowController`,将 overlay window 实例、generation、Space 避让、show/focus/hide 编排、panel 创建、屏幕选择、全屏/Split View 判定从 `AppDelegate` 中收口出去。 + - 范围: AppDelegate 保留菜单、热键、Settings、Quick Search 和 app chrome 协调入口;窗口策略保持原行为。 + - 验证: `bash build.sh`、`codesign --verify --deep --strict`、`Scripts/window_logic_qa.sh` 全部通过,覆盖全屏、Split View、Settings、Force Quit、文件面板、Dock 图标重复和屏幕跟随。 + +- [2026-05-29] Quick Search 独立面板化。 + - 提交: 本次提交 + - 结果: Quick Search 面板已从主 overlay SwiftUI 层拆出,改为独立 `NSPanel` 并作为 overlay child window 显示;搜索状态、输入框、结果列表、启动逻辑保持原路径。 + - 补强: Quick Search panel 与 overlay 保持同层级,避免压过菜单栏;打开 Settings 前统一关闭 Quick Search;本应用内外部点击可关闭 Quick Search 但保留 App Grid。 + - 验证: `bash build.sh`、`codesign --verify --deep --strict`、`Scripts/window_logic_qa.sh` 全部通过;屏幕 QA 验证打开、输入 `sor`、上下键选中和 Esc 关闭均正常。 + - [2026-05-29] Quick Search 结果列表 AppKit 化。 - 提交: 本次提交 - 结果: Quick Search 结果列表已替换为 AppKit `NSScrollView` + 自绘 row;输入框、搜索逻辑、快捷键命令、外层 overlay 保持原路径。 -- Gitblit v1.9.3