summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorpml68 <contact@pml68.dev>2025-07-17 03:23:53 +0200
committerpml68 <contact@pml68.dev>2025-07-17 03:23:53 +0200
commitb4e120717875934205b12056ed214217df30b75a (patch)
tree6403a8a2f95a95519761044acf9dee61bc7dcd6a /src/main.rs
parentfeat: make close-only dialogs closable via `Esc` or clicking the backdrop (diff)
downloadiced-builder-b4e120717875934205b12056ed214217df30b75a.tar.gz
chore: update deps
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs
index 4df5922..aaddf1f 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -231,16 +231,19 @@ impl IcedBuilder {
Message::HandleNew(name, zones) => {
let ids: Vec<Id> = zones.into_iter().map(|z| z.0).collect();
if !ids.is_empty() {
+ self.is_dirty = true;
+
let action = Action::new(
&ids,
self.project.element_tree.as_ref(),
None,
);
+
let result = name.handle_action(
self.project.element_tree.as_mut(),
action,
);
- self.is_dirty = true;
+
match result {
Ok(Some(ref element)) => {
self.project.element_tree = Some(element.clone());
@@ -269,10 +272,12 @@ impl IcedBuilder {
self.project.element_tree.as_ref(),
Some(element.id()),
);
+
let result = element.handle_action(
self.project.element_tree.as_mut(),
action,
);
+
if let Err(error) = result {
self.dialog = Dialog::error(error);
}