修复: 审批浮窗无法关闭(托盘拦截误伤+兜底失效)
根因=关窗拦截全局生效误伤浮窗等JS窗口,close被吞成隐藏僵尸永不销毁, 且close() resolve≠销毁使前端兜底被误取消;改仅主窗口拦截,关窗兜底 按tauri://destroyed判定超时强制销毁,主窗口closePopup同步加固
This commit is contained in:
@@ -510,9 +510,14 @@ pub fn run() {
|
||||
// Phase3: 内嵌 HTTP MCP server 状态查询
|
||||
crate::mcp::mcp_get_status,
|
||||
])
|
||||
// Phase3: 关窗口不退出,隐藏到托盘常驻(托盘「退出」菜单才真正结束进程)
|
||||
// 关主窗口不退出,隐藏到托盘常驻(托盘「退出」菜单才真正结束进程)。
|
||||
// 仅拦 main:approval-popup / ai-detached / fe-detached 等 JS 创建窗口必须放行
|
||||
// 真正关闭,否则 close 被吞成隐藏僵尸窗,浮窗「正在关闭…」卡死、新审批推给不可见窗口。
|
||||
.on_window_event(|window, event| {
|
||||
if let tauri::WindowEvent::CloseRequested { api, .. } = event {
|
||||
if window.label() != "main" {
|
||||
return; // 非主窗口放行真正销毁
|
||||
}
|
||||
api.prevent_close(); // 拦截真正关闭
|
||||
let _ = window.hide(); // 隐藏到托盘
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user