aboutsummaryrefslogtreecommitdiff
path: root/bundle/src-tauri/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'bundle/src-tauri/src/main.rs')
-rw-r--r--bundle/src-tauri/src/main.rs11
1 files changed, 6 insertions, 5 deletions
diff --git a/bundle/src-tauri/src/main.rs b/bundle/src-tauri/src/main.rs
index 9f63fc5..0da6815 100644
--- a/bundle/src-tauri/src/main.rs
+++ b/bundle/src-tauri/src/main.rs
@@ -93,11 +93,12 @@ fn main() {
.menu(menu::build)
// Menu items act on the focused window, like its keyboard shortcuts.
.on_menu_event(|app, event| {
- let focused = app
- .webview_windows()
- .into_values()
- .find(|window| window.is_focused().unwrap_or(false));
- if let Some(window) = focused {
+ let mut windows = app.webview_windows().into_values();
+ if event.id() == "quit" {
+ // Each window runs its unsaved-changes prompt; the app exits after the last.
+ windows.for_each(|window| drop(window.close()));
+ } else if let Some(window) = windows.find(|window| window.is_focused().unwrap_or(false))
+ {
let _ = window.emit_to(window.label(), "menu", event.id().as_ref());
}
})