diff --git a/Cargo.lock b/Cargo.lock index b430a646..b6de71cd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -620,9 +620,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "28cfac68e08048ae1883171632c2aef3ebc555621ae56fbccce1cbf22dd7f058" dependencies = [ "powerfmt", ] @@ -1036,9 +1036,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "image" -version = "0.25.5" +version = "0.25.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b" +checksum = "db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a" dependencies = [ "bytemuck", "byteorder-lite", @@ -1711,9 +1711,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plist" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" +checksum = "eac26e981c03a6e53e0aee43c113e3202f5581d5360dae7bd2c70e800dd0451d" dependencies = [ "base64", "indexmap", diff --git a/yazi-adapter/Cargo.toml b/yazi-adapter/Cargo.toml index 3188a5ff..74038a20 100644 --- a/yazi-adapter/Cargo.toml +++ b/yazi-adapter/Cargo.toml @@ -19,7 +19,7 @@ anyhow = { workspace = true } base64 = { workspace = true } color_quant = "1.1.0" crossterm = { workspace = true } -image = { version = "0.25.5", default-features = false, features = [ "avif", "bmp", "dds", "exr", "ff", "gif", "hdr", "ico", "jpeg", "png", "pnm", "qoi", "tga", "webp" ] } +image = { version = "0.25.6", default-features = false, features = [ "avif", "bmp", "dds", "exr", "ff", "gif", "hdr", "ico", "jpeg", "png", "pnm", "qoi", "tga", "webp" ] } ratatui = { workspace = true } scopeguard = { workspace = true } tokio = { workspace = true } diff --git a/yazi-config/preset/keymap-default.toml b/yazi-config/preset/keymap-default.toml index a6cd44e1..2a71a7bf 100644 --- a/yazi-config/preset/keymap-default.toml +++ b/yazi-config/preset/keymap-default.toml @@ -149,7 +149,7 @@ keymap = [ { on = "}", run = "tab_swap 1", desc = "Swap current tab with next tab" }, # Tasks - { on = "w", run = "tasks_show", desc = "Show task manager" }, + { on = "w", run = "tasks:show", desc = "Show task manager" }, # Help { on = "~", run = "help", desc = "Open help" }, @@ -330,7 +330,7 @@ keymap = [ keymap = [ { on = "", run = "close", desc = "Cancel completion" }, { on = "", run = "close --submit", desc = "Submit the completion" }, - { on = "", run = [ "close --submit", "close_input --submit" ], desc = "Submit the completion and input" }, + { on = "", run = [ "close --submit", "input:close --submit" ], desc = "Complete and submit the input" }, { on = "", run = "arrow -1", desc = "Move cursor up" }, { on = "", run = "arrow 1", desc = "Move cursor down" }, diff --git a/yazi-core/src/tasks/commands/close.rs b/yazi-core/src/tasks/commands/close.rs new file mode 100644 index 00000000..e43a9804 --- /dev/null +++ b/yazi-core/src/tasks/commands/close.rs @@ -0,0 +1,28 @@ +use yazi_macro::render; +use yazi_shared::event::CmdCow; + +use crate::tasks::Tasks; + +struct Opt; + +impl From for Opt { + fn from(_: CmdCow) -> Self { Self } +} +impl From<()> for Opt { + fn from(_: ()) -> Self { Self } +} + +impl Tasks { + #[yazi_codegen::command] + pub fn close(&mut self, _: Opt) { + if !self.visible { + return; + } + + self.visible = false; + self.summaries = Vec::new(); + + self.arrow(0); + render!(); + } +} diff --git a/yazi-core/src/tasks/commands/mod.rs b/yazi-core/src/tasks/commands/mod.rs index 1c6b43d9..18559820 100644 --- a/yazi-core/src/tasks/commands/mod.rs +++ b/yazi-core/src/tasks/commands/mod.rs @@ -1 +1 @@ -yazi_macro::mod_flat!(arrow cancel inspect open_with process_exec toggle); +yazi_macro::mod_flat!(arrow cancel close inspect open_with process_exec show); diff --git a/yazi-core/src/tasks/commands/toggle.rs b/yazi-core/src/tasks/commands/show.rs similarity index 71% rename from yazi-core/src/tasks/commands/toggle.rs rename to yazi-core/src/tasks/commands/show.rs index 3b9af7a9..10eb7339 100644 --- a/yazi-core/src/tasks/commands/toggle.rs +++ b/yazi-core/src/tasks/commands/show.rs @@ -14,14 +14,15 @@ impl From<()> for Opt { impl Tasks { #[yazi_codegen::command] - pub fn toggle(&mut self, _: Opt) { - self.visible = !self.visible; - + pub fn show(&mut self, _: Opt) { if self.visible { - self.summaries = self.paginate(); - self.arrow(0); + return; } + self.visible = true; + self.summaries = self.paginate(); + + self.arrow(0); render!(); } } diff --git a/yazi-fm/src/executor.rs b/yazi-fm/src/executor.rs index 282c1ad6..ea12e183 100644 --- a/yazi-fm/src/executor.rs +++ b/yazi-fm/src/executor.rs @@ -141,8 +141,6 @@ impl<'a> Executor<'a> { on!(TABS, swap); match cmd.name.as_str() { - // Tasks - "tasks_show" => self.app.cx.tasks.toggle(()), // Help "help" => self.app.cx.help.toggle(Layer::Mgr), // Plugin @@ -165,7 +163,8 @@ impl<'a> Executor<'a> { }; } - on!(toggle, "close"); + on!(show); + on!(close); on!(arrow); on!(inspect); on!(cancel); @@ -309,7 +308,6 @@ impl<'a> Executor<'a> { on!(arrow); match cmd.name.as_str() { - "close_input" => self.app.cx.input.close(cmd), // Help "help" => self.app.cx.help.toggle(Layer::Cmp), // Plugin