Quit from any window, Settings too, asks about unsaved tabs in front (X-01)
This commit is contained in:
15 files changed
+107
-19
No files matched your search
+1
-1
@@ -87,7 +87,7 @@
|
||||
- [ ] K-02 图块的代际在画完之后才取,画到一半的作废被盖掉
|
||||
- [ ] K-03 `rect_of` 宽容解析把读不出的载荷悄悄吞掉
|
||||
- [ ] K-04 `Sheets.current` 用 `as u64` 转有符号的 part
|
||||
- [ ] X-01 设置窗口在前时 Cmd+Q 直接退出,跳过未保存询问并抹掉恢复点
|
||||
- [x] X-01 设置窗口在前时 Cmd+Q 直接退出,跳过未保存询问并抹掉恢复点 — 退出一律经主窗口宿主的流程(route_quit),延后到动作结束、先把宿主窗口提到前面;R1 主窗口 Cmd+Q 不问;R2 询问被设置窗口挡住;R3 PASS
|
||||
- [ ] X-02 共用 `settings.json` 读不出时 Doc、Table、Show 根本起不来
|
||||
- [ ] X-03 第二个实例启动即清掉运行中实例的工作目录与恢复点
|
||||
- [ ] X-04 属性栏字号菜单的 `expect("sizes are numbers")` 是脆弱点,但当前不可达
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
FAIL
|
||||
|
||||
crates/ely-office/src/close.rs:50 — 主窗口的 Cmd+Q 和应用菜单“退出”会直接丢失未保存内容。GPUI 在窗口动作派发期间暂时取出当前窗口,此处同步 `handle.update` 返回 `window not found`,第 57–58 行随即调用 `cx.quit()`,跳过 `Host::quitting` 和未保存询问,并将恢复会话记为干净结束。实测:ElyDoc 新建文档,键入 `ZqxQuitProbe`,等待生成恢复点,保持主窗口聚焦后按 Cmd+Q;进程以 0 退出,询问未出现,`session.lock` 被删除;重新启动后恢复点从 1 个变成 0 个,文字丢失。独立点击应用菜单“退出”同样直接退出。设置窗口的两个入口均出现询问,取消后文字和恢复点保留。证据保存在 `/tmp/ely-x01-native-evidence.log`,违反 PRD §6.2 的保存、放弃、取消要求。新增测试 `apps/ely-doc/src/tests/more.rs:236` 直接在 App 更新中调用退出函数,绕过窗口动作派发,因此该测试通过。修复方向:将退出转发延后至当前窗口更新结束,确认宿主窗口确已关闭时才直接退出;回归测试通过主窗口和设置窗口实际派发退出动作,验证询问、取消及恢复点保留。
|
||||
@@ -0,0 +1,3 @@
|
||||
FAIL
|
||||
|
||||
crates/ely-office/src/close.rs:53 — 从设置窗口退出时,保存询问被完全遮挡,键盘焦点仍留在设置窗口。复现:ElyDoc 新建文档并键入文字,Cmd+, 打开居中的设置窗口,再按 Cmd+Q 或点击应用菜单“退出”;延后路由在后台主窗口生成询问,设置窗口继续位于最前,遮住保存、放弃与取消按钮;按 Esc 后询问仍然存在。两个入口均已在真实窗口复现并检查截图与 AX,日志 `/tmp/ely-x01-r2-focus-evidence.log` 记录前台窗口为 Settings、`escape_leaves_question=true`,违反 PRD §6.2 和 UX-03。新增回归测试仅检查 Dialog 状态与标签存活,遗漏前台窗口和键盘取消。修复方向:转发退出时先激活并前置宿主窗口,再启动关闭流程;回归测试覆盖询问可见、焦点进入询问及 Esc 取消。
|
||||
@@ -0,0 +1 @@
|
||||
PASS
|
||||
Reference in new issue
Block a user