diff --git a/apps/desktop/src-tauri/src/lib.rs b/apps/desktop/src-tauri/src/lib.rs index 6908b79..247698b 100644 --- a/apps/desktop/src-tauri/src/lib.rs +++ b/apps/desktop/src-tauri/src/lib.rs @@ -143,6 +143,8 @@ pub fn run() { .on_menu_event(move |app, event| match event.id().as_ref() { "open" => { if let Some(w) = app.get_webview_window("main") { + // Minimiertes Fenster (z. B. per Win+D) zuerst wiederherstellen + let _ = w.unminimize(); let _ = w.show(); let _ = w.set_focus(); } @@ -184,6 +186,7 @@ pub fn run() { } = event { if let Some(w) = tray.app_handle().get_webview_window("main") { + let _ = w.unminimize(); let _ = w.show(); let _ = w.set_focus(); } @@ -239,7 +242,12 @@ pub fn run() { .expect("error while building Tessera desktop application"); app.run(|_app, event| { - if let RunEvent::ExitRequested { api, .. } = event { + // Fenster schliessen setzt code auf None -- App laeuft dann im + // Infobereich weiter (siehe on_window_event). Der Tray-Eintrag + // "Beenden" ruft dagegen app.exit(0), das liefert code: Some -- + // dieser Fall muss durchgelassen werden, sonst bleibt der Prozess + // samt Tray-Symbol haengen. + if let RunEvent::ExitRequested { code: None, api, .. } = event { api.prevent_exit(); } });