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() {
|
.on_menu_event(move |app, event| match event.id().as_ref() {
|
||||||
"open" => {
|
"open" => {
|
||||||
if let Some(w) = app.get_webview_window("main") {
|
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.show();
|
||||||
let _ = w.set_focus();
|
let _ = w.set_focus();
|
||||||
}
|
}
|
||||||
@@ -184,6 +186,7 @@ pub fn run() {
|
|||||||
} = event
|
} = event
|
||||||
{
|
{
|
||||||
if let Some(w) = tray.app_handle().get_webview_window("main") {
|
if let Some(w) = tray.app_handle().get_webview_window("main") {
|
||||||
|
let _ = w.unminimize();
|
||||||
let _ = w.show();
|
let _ = w.show();
|
||||||
let _ = w.set_focus();
|
let _ = w.set_focus();
|
||||||
}
|
}
|
||||||
@@ -239,7 +242,12 @@ pub fn run() {
|
|||||||
.expect("error while building Tessera desktop application");
|
.expect("error while building Tessera desktop application");
|
||||||
|
|
||||||
app.run(|_app, event| {
|
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();
|
api.prevent_exit();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user