From 464dca0795c1354582c429481f35b4ead0f973fe Mon Sep 17 00:00:00 2001 From: nessi Date: Tue, 17 Mar 2026 21:25:38 +0100 Subject: [PATCH] refactor: split window restoration into type-specific helpers and add focus event handler Rename restore_main_window to restore_webview_window for WebviewWindow type. Add new restore_window helper for generic Window type. Update tray menu and click handlers to use restore_webview_window. Add WindowEvent::Focused handler to restore window state when focused. --- desktop-client/src-tauri/src/lib.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/desktop-client/src-tauri/src/lib.rs b/desktop-client/src-tauri/src/lib.rs index 27e205b..469b629 100644 --- a/desktop-client/src-tauri/src/lib.rs +++ b/desktop-client/src-tauri/src/lib.rs @@ -341,7 +341,13 @@ fn ensure_app_dir(app: &AppHandle) -> Result { Ok(dir) } -fn restore_main_window(window: &Window) { +fn restore_window(window: &Window) { + let _ = window.show(); + let _ = window.unminimize(); + let _ = window.set_focus(); +} + +fn restore_webview_window(window: &WebviewWindow) { let _ = window.show(); let _ = window.unminimize(); let _ = window.set_focus(); @@ -368,7 +374,7 @@ pub fn run() { .on_menu_event(|app, event| match event.id().as_ref() { "open" => { if let Some(window) = app.get_webview_window(MAIN_WINDOW_LABEL) { - restore_main_window(&window); + restore_webview_window(&window); } } "quit" => { @@ -385,7 +391,7 @@ pub fn run() { { let app = tray.app_handle(); if let Some(window) = app.get_webview_window(MAIN_WINDOW_LABEL) { - restore_main_window(&window); + restore_webview_window(&window); } } }) @@ -406,6 +412,9 @@ pub fn run() { hide_main_window(window); } } + WindowEvent::Focused(true) => { + restore_window(window); + } _ => {} }) .invoke_handler(tauri::generate_handler![load_state, enroll_device, sync_profile, connect_tunnel, disconnect_tunnel])