fix(window): hide chat window on close instead of destroying it

Intercept WindowEvent::CloseRequested on the 'chat' window and call
window.hide() + api.prevent_close(). Without this, clicking the X
destroys the window — get_webview_window("chat") then returns None
and subsequent tray clicks do nothing.
This commit is contained in:
pyr0ball 2026-05-20 11:18:25 -07:00
parent d6252cf16c
commit 17c6b27bfe

View file

@ -76,6 +76,20 @@ pub fn run() {
.map(|pf| pf.log_paths.clone()) .map(|pf| pf.log_paths.clone())
.unwrap_or_default(); .unwrap_or_default();
// Intercept the chat window's close button so it hides rather than
// destroys the window. Without this, closing once makes the window
// unreachable — get_webview_window("chat") returns None and the tray
// click does nothing.
if let Some(chat_win) = app.get_webview_window("chat") {
let win = chat_win.clone();
chat_win.on_window_event(move |event| {
if let tauri::WindowEvent::CloseRequested { api, .. } = event {
let _ = win.hide();
api.prevent_close();
}
});
}
let rx = watcher::spawn(log_paths); let rx = watcher::spawn(log_paths);
let pf = Arc::new(pattern_file); let pf = Arc::new(pattern_file);
let app_handle = app.handle().clone(); let app_handle = app.handle().clone();