fix: missing a hover event after cd (#2719)

This commit is contained in:
三咲雅 · Misaki Masa 2025-05-05 01:18:09 +08:00 committed by GitHub
parent a201c93419
commit c53865788a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 19 additions and 16 deletions

12
Cargo.lock generated
View file

@ -355,9 +355,9 @@ dependencies = [
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.2.20" version = "1.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04da6a0d40b948dfc4fa8f5bbf402b0fc1a64a28dbf7d12ffd683550f2c1b63a" checksum = "8691782945451c1c383942c4874dbe63814f61cb57ef773cda2972682b7bb3c0"
dependencies = [ dependencies = [
"jobserver", "jobserver",
"libc", "libc",
@ -2123,9 +2123,9 @@ dependencies = [
[[package]] [[package]]
name = "redox_syscall" name = "redox_syscall"
version = "0.5.11" version = "0.5.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af"
dependencies = [ dependencies = [
"bitflags 2.9.0", "bitflags 2.9.0",
] ]
@ -3320,9 +3320,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]] [[package]]
name = "winnow" name = "winnow"
version = "0.7.8" version = "0.7.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e27d6ad3dac991091e4d35de9ba2d2d00647c5d0fc26c5496dee55984ae111b" checksum = "d9fb597c990f03753e08d3c29efbfcf2019a003b4bf4ba19225c158e1549f0f3"
dependencies = [ dependencies = [
"memchr", "memchr",
] ]

View file

@ -72,6 +72,8 @@ impl Tab {
} }
Pubsub::pub_from_cd(self.id, self.cwd()); Pubsub::pub_from_cd(self.id, self.cwd());
self.hover(None);
MgrProxy::refresh(); MgrProxy::refresh();
render!(); render!();
} }

View file

@ -8,16 +8,18 @@ use crate::{tab::Tab, tasks::Tasks};
impl Tab { impl Tab {
pub fn sort(&mut self, c: CmdCow, tasks: &Tasks) { pub fn sort(&mut self, c: CmdCow, tasks: &Tasks) {
let pref = &mut self.pref; let mut new = self.pref.clone();
if let Some(by) = c.first_str() { new.sort_by = c.first_str().and_then(|s| SortBy::from_str(s).ok()).unwrap_or(new.sort_by);
pref.sort_by = SortBy::from_str(by).unwrap_or_default(); new.sort_reverse = c.maybe_bool("reverse").unwrap_or(new.sort_reverse);
new.sort_dir_first = c.maybe_bool("dir-first").unwrap_or(new.sort_dir_first);
new.sort_sensitive = c.maybe_bool("sensitive").unwrap_or(new.sort_sensitive);
new.sort_translit = c.maybe_bool("translit").unwrap_or(new.sort_translit);
if new == self.pref {
return;
} }
pref.sort_reverse = c.maybe_bool("reverse").unwrap_or(pref.sort_reverse); self.pref = new;
pref.sort_dir_first = c.maybe_bool("dir-first").unwrap_or(pref.sort_dir_first);
pref.sort_sensitive = c.maybe_bool("sensitive").unwrap_or(pref.sort_sensitive);
pref.sort_translit = c.maybe_bool("translit").unwrap_or(pref.sort_translit);
self.apply_files_attrs(); self.apply_files_attrs();
self.hover(None); self.hover(None);
tasks.prework_sorted(&self.current.files); tasks.prework_sorted(&self.current.files);

View file

@ -144,11 +144,10 @@ impl Client {
} }
} }
None => loop { None => loop {
time::sleep(time::Duration::from_secs(1)).await;
if let Ok(new) = make(&kinds).await { if let Ok(new) = make(&kinds).await {
lines = new; lines = new;
break; break;
} else {
time::sleep(time::Duration::from_secs(1)).await;
} }
}, },
} }