From 395a52e7f11e5c42d8655d01ded0995dd1dc121c Mon Sep 17 00:00:00 2001 From: Sean Lavery Date: Wed, 7 Oct 2026 04:07:00 -0700 Subject: [PATCH] Focus PhotoCraft when unsaved-close prompt appears (#547) --- crates/ui-egui/src/discard_ui.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/ui-egui/src/discard_ui.rs b/crates/ui-egui/src/discard_ui.rs index 22a577d9..2a4c4994 100644 --- a/crates/ui-egui/src/discard_ui.rs +++ b/crates/ui-egui/src/discard_ui.rs @@ -86,6 +86,7 @@ pub fn guard_window_close(app: &mut PhotocraftApp, ctx: &egui::Context) { } if intercept(app, EXIT, &Value::Null) { ctx.send_viewport_cmd(egui::ViewportCommand::CancelClose); + ctx.send_viewport_cmd(egui::ViewportCommand::Focus); } } @@ -383,7 +384,10 @@ mod tests { input.viewports.insert(egui::ViewportId::ROOT, info); let mut out = egui::Context::default().run_ui(input, |ui| guard_window_close(app, ui.ctx())); out.textures_delta.clear(); - out.viewport_output[&egui::ViewportId::ROOT].commands.iter().any(|c| matches!(c, egui::ViewportCommand::CancelClose)) + let commands = &out.viewport_output[&egui::ViewportId::ROOT].commands; + let cancelled = commands.iter().any(|c| matches!(c, egui::ViewportCommand::CancelClose)); + assert_eq!(commands.iter().any(|c| matches!(c, egui::ViewportCommand::Focus)), cancelled); + cancelled } #[test]