summaryrefslogtreecommitdiff
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
parentfeat: make close-only dialogs closable via `Esc` or clicking the backdrop (diff)
downloadiced-builder-b4e120717875934205b12056ed214217df30b75a.tar.gz
chore: update deps
-rw-r--r--Cargo.lock69
-rw-r--r--Cargo.toml10
-rw-r--r--src/main.rs7
-rw-r--r--src/panes/element_list.rs8
-rwxr-xr-xsrc/types/rendered_element.rs1
5 files changed, 47 insertions, 48 deletions
diff --git a/Cargo.lock b/Cargo.lock
index e63ef33..40f852e 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -204,6 +204,9 @@ dependencies = [
"serde",
"serde_repr",
"url",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-protocols",
"zbus",
]
@@ -910,9 +913,9 @@ dependencies = [
[[package]]
name = "crc32fast"
-version = "1.4.2"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
+checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
dependencies = [
"cfg-if",
]
@@ -1068,23 +1071,13 @@ checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
[[package]]
name = "dispatch2"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a0d569e003ff27784e0e14e4a594048698e0c0f0b66cabcb51511be55a7caa0"
-dependencies = [
- "bitflags 2.9.1",
- "block2 0.6.1",
- "libc",
- "objc2 0.6.1",
-]
-
-[[package]]
-name = "dispatch2"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec"
dependencies = [
"bitflags 2.9.1",
+ "block2 0.6.1",
+ "libc",
"objc2 0.6.1",
]
@@ -1182,7 +1175,7 @@ dependencies = [
"cc",
"memchr",
"rustc_version",
- "toml 0.9.0",
+ "toml 0.9.2",
"vswhom",
"winreg 0.55.0",
]
@@ -2009,7 +2002,7 @@ dependencies = [
"thiserror 2.0.12",
"tokio",
"tokio-stream",
- "toml 0.9.0",
+ "toml 0.9.2",
"windows_exe_info",
"xdg",
]
@@ -2064,7 +2057,7 @@ dependencies = [
[[package]]
name = "iced_drop"
version = "0.1.0"
-source = "git+https://github.com/pml68/iced_drop?branch=iced%2Fpersonal#c55f7af824ac5adac85a88b91c2639d1bc32e158"
+source = "git+https://github.com/pml68/iced_drop?branch=iced%2Fpersonal#22df91db30a2159dc4f7a20a31b0628e37a56256"
dependencies = [
"iced",
]
@@ -2077,7 +2070,7 @@ dependencies = [
"serde",
"serde_json",
"sha2",
- "toml 0.9.0",
+ "toml 0.9.2",
"zip",
]
@@ -2741,9 +2734,9 @@ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
[[package]]
name = "memmap2"
-version = "0.9.5"
+version = "0.9.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f"
+checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28"
dependencies = [
"libc",
]
@@ -3127,7 +3120,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166"
dependencies = [
"bitflags 2.9.1",
- "dispatch2 0.3.0",
+ "dispatch2",
"objc2 0.6.1",
]
@@ -3944,13 +3937,13 @@ dependencies = [
[[package]]
name = "rfd"
-version = "0.15.3"
+version = "0.15.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80c844748fdc82aae252ee4594a89b6e7ebef1063de7951545564cbc4e57075d"
+checksum = "ef2bee61e6cffa4635c72d7d81a84294e28f0930db0ddcb0f66d10244674ebed"
dependencies = [
"ashpd 0.11.0",
"block2 0.6.1",
- "dispatch2 0.2.0",
+ "dispatch2",
"js-sys",
"log",
"objc2 0.6.1",
@@ -3968,9 +3961,9 @@ dependencies = [
[[package]]
name = "rgb"
-version = "0.8.51"
+version = "0.8.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a457e416a0f90d246a4c3288bd7a25b2304ca727f253f95be383dd17af56be8f"
+checksum = "0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce"
dependencies = [
"bytemuck",
]
@@ -4056,9 +4049,9 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.23.28"
+version = "0.23.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643"
+checksum = "2491382039b29b9b11ff08b76ff6c97cf287671dbb74f0be44bda389fffe9bd1"
dependencies = [
"once_cell",
"rustls-pki-types",
@@ -4078,9 +4071,9 @@ dependencies = [
[[package]]
name = "rustls-webpki"
-version = "0.103.3"
+version = "0.103.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435"
+checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc"
dependencies = [
"ring",
"rustls-pki-types",
@@ -4868,9 +4861,9 @@ dependencies = [
[[package]]
name = "toml"
-version = "0.9.0"
+version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f271e09bde39ab52250160a67e88577e0559ad77e9085de6e9051a2c4353f8f8"
+checksum = "ed0aee96c12fa71097902e0bb061a5e1ebd766a6636bb605ba401c45c1650eac"
dependencies = [
"indexmap",
"serde",
@@ -4914,18 +4907,18 @@ dependencies = [
[[package]]
name = "toml_parser"
-version = "1.0.0"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5c1c469eda89749d2230d8156a5969a69ffe0d6d01200581cdc6110674d293e"
+checksum = "97200572db069e74c512a14117b296ba0a80a30123fbbb5aa1f4a348f639ca30"
dependencies = [
"winnow",
]
[[package]]
name = "toml_writer"
-version = "1.0.0"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b679217f2848de74cabd3e8fc5e6d66f40b7da40f8e1954d92054d9010690fd5"
+checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64"
[[package]]
name = "tower"
@@ -6096,9 +6089,9 @@ dependencies = [
[[package]]
name = "winnow"
-version = "0.7.11"
+version = "0.7.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd"
+checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95"
dependencies = [
"memchr",
]
diff --git a/Cargo.toml b/Cargo.toml
index 23f0139..7f2ab97 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -35,7 +35,7 @@ iced_fontello = { path = "iced_fontello" }
xdg = "3.0.0"
[target.'cfg(windows)'.build-dependencies]
-embed-resource = "3.0.4"
+embed-resource = "3.0.5"
windows_exe_info = "0.5.2"
[lints]
@@ -67,12 +67,10 @@ iced_drop = { git = "https://github.com/pml68/iced_drop", branch = "iced/persona
iced_custom_highlighter = { git = "https://github.com/pml68/iced_custom_highlighter", branch = "master" }
serde = { version = "1.0.219", features = ["derive"] }
serde_json = "1.0.140"
-toml = "0.9.0"
-tokio = { version = "1.45.1", features = ["fs", "io-util"] }
+toml = "0.9.2"
+tokio = { version = "1.46.1", features = ["fs", "io-util"] }
tokio-stream = { version = "0.1.17", features = ["fs"] }
-# TODO: enable tokio when it doesn't crash anymore
-# rfd = { version = "0.15.3", default-features = false, features = ["tokio", "xdg-portal"] }
-rfd = "0.15.3"
+rfd = "0.15.4"
rust-format = "0.3.4"
fxhash = "0.2.1"
thiserror = "2.0.12"
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);
}
diff --git a/src/panes/element_list.rs b/src/panes/element_list.rs
index 5e7d99d..b18c275 100644
--- a/src/panes/element_list.rs
+++ b/src/panes/element_list.rs
@@ -14,9 +14,11 @@ fn items_list_view<'a>() -> Element<'a, Message> {
for item in ElementName::ALL {
column = column.push(
- droppable(text(item.clone().to_string())).on_drop(|point, rect| {
- Message::DropNewElement(item.clone(), point, rect)
- }),
+ droppable(text(item.clone().to_string()))
+ .drag_center(true)
+ .on_drop(|point, rect| {
+ Message::DropNewElement(item.clone(), point, rect)
+ }),
);
}
diff --git a/src/types/rendered_element.rs b/src/types/rendered_element.rs
index be2a004..9f51e7e 100755
--- a/src/types/rendered_element.rs
+++ b/src/types/rendered_element.rs
@@ -392,6 +392,7 @@ impl<'a> From<RenderedElement> for Element<'a, Message> {
iced_drop::droppable(content)
.id(value.id().clone())
.drag_hide(true)
+ .drag_center(true)
.on_drop(move |point, rect| {
Message::MoveElement(value.clone(), point, rect)
})