fix(desktop): Tray „Beenden“ beendet die App (ExitRequested nur bei code None verhindern); „Öffnen“/Linksklick holen minimiertes Fenster per unminimize zurück

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-17 10:47:08 +02:00
parent 280aab6cf0
commit 68a69c67fe
+9 -1
View File
@@ -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();
}
});