summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorpml68 <contact@pml68.dev>2025-07-10 02:50:21 +0200
committerpml68 <contact@pml68.dev>2025-07-10 02:51:02 +0200
commit55f4a4db74209ddfb6a67b3ed431b360807e039e (patch)
treeabb2a3ac459776f5a9ef790f7b11c99c1c07c775 /src/main.rs
parentchore: switch to `[patch.crates-io]` according to `iced_dialog` changes (diff)
downloadiced-builder-55f4a4db74209ddfb6a67b3ed431b360807e039e.tar.gz
feat: make close-only dialogs closable via `Esc` or clicking the backdrop
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
index 389c827..4df5922 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -427,6 +427,12 @@ impl IcedBuilder {
Message::CloseApp => {
return window::get_latest().and_then(window::close);
}
+ Message::EscapePressed
+ if self.dialog.action() == dialog::Action::Close =>
+ {
+ self.dialog.close();
+ }
+ Message::EscapePressed => {}
Message::WindowEvent(window::Event::CloseRequested) => {
if self.is_dirty {
self.dialog = Dialog::unsaved_changes(
@@ -458,6 +464,10 @@ impl IcedBuilder {
keyboard::Key::Character("n") => Some(Message::NewFile),
_ => None,
}
+ } else if key.as_ref()
+ == keyboard::Key::Named(keyboard::key::Named::Escape)
+ {
+ Some(Message::EscapePressed)
} else {
None
}