From 68a69c67fef09ffd97aa486f6bb97106fae12a82 Mon Sep 17 00:00:00 2001 From: Schalli Date: Thu, 17 Sep 2026 10:47:08 +0200 Subject: [PATCH] =?UTF-8?q?fix(desktop):=20Tray=20=E2=80=9EBeenden?= =?UTF-8?q?=E2=80=9C=20beendet=20die=20App=20(ExitRequested=20nur=20bei=20?= =?UTF-8?q?code=20None=20verhindern);=20=E2=80=9E=C3=96ffnen=E2=80=9C/Link?= =?UTF-8?q?sklick=20holen=20minimiertes=20Fenster=20per=20unminimize=20zur?= =?UTF-8?q?=C3=BCck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5 (1M context) --- apps/desktop/src-tauri/src/lib.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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(); } });