Fix exit_on_last_window_close for UserWindowEvent::CloseWindow (#5047)

* Fix exit_on_last_window_close for UserWindowEvent::CloseWindow

* fix: unify under close_requested

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
This commit is contained in:
KlemenandJonathan Kelley authored and GitHub committed 2025-12-04 17:26:32 -08:00
1 parent 3fef7a9962
commit 3b9558d8eb
2 files changed
+1 -11

No files matched your search

-10
View File
@@ -302,16 +302,6 @@ impl App {
_ = self.shared.proxy.send_event(UserWindowEvent::Poll(id));
}
/// Todo: maybe we should poll the virtualdom asking if it has any final actions to apply before closing the webview
///
/// Technically you can handle this with the use_window_event hook
pub fn handle_close_msg(&mut self, id: WindowId) {
self.webviews.remove(&id);
if self.webviews.is_empty() {
self.control_flow = ControlFlow::Exit
}
}
pub fn handle_query_msg(&mut self, msg: IpcMessage, id: WindowId) {
let Ok(result) = serde_json::from_value::<QueryResult>(msg.params()) else {
return;
+1 -1
View File
@@ -39,7 +39,7 @@ pub fn launch_virtual_dom_blocking(virtual_dom: VirtualDom, mut desktop_config:
Event::UserEvent(event) => match event {
UserWindowEvent::Poll(id) => app.poll_vdom(id),
UserWindowEvent::NewWindow => app.handle_new_window(),
UserWindowEvent::CloseWindow(id) => app.handle_close_msg(id),
UserWindowEvent::CloseWindow(id) => app.handle_close_requested(id),
UserWindowEvent::Shutdown => app.control_flow = tao::event_loop::ControlFlow::Exit,
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]