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:
@@ -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();
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user