summaryrefslogtreecommitdiff
path: root/src/dialog.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/dialog.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/dialog.rs')
-rw-r--r--src/dialog.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/dialog.rs b/src/dialog.rs
index d5fdc14..3a79dd4 100644
--- a/src/dialog.rs
+++ b/src/dialog.rs
@@ -10,7 +10,7 @@ pub const UNSAVED_CHANGES_TITLE: &str = "Hold on for a sec!";
pub const WARNING_TITLE: &str = "Heads up!";
pub const ERROR_TITLE: &str = "Oops! Something went wrong.";
-#[derive(Debug, Clone, Copy, Default)]
+#[derive(Debug, Clone, Copy, Default, PartialEq)]
pub enum Action {
#[default]
None,
@@ -18,7 +18,7 @@ pub enum Action {
UnsavedChanges(UnsavedChanges),
}
-#[derive(Debug, Clone, Copy)]
+#[derive(Debug, Clone, Copy, PartialEq)]
pub enum UnsavedChanges {
New,
Open,
@@ -99,5 +99,9 @@ impl Dialog {
self.action.into(),
)
.title(&*self.title)
+ .on_press_maybe(
+ matches!(self.action, Action::Close)
+ .then_some(Message::CloseDialog),
+ )
}
}