Re-peek after the hovered file changes

This commit is contained in:
sxyazi 2023-12-28 00:15:10 +08:00
parent 99dc0e389c
commit 3812ea2d3a
No known key found for this signature in database
4 changed files with 13 additions and 7 deletions

View file

@ -221,7 +221,7 @@ impl Files {
let (hidden, items) = if let Some(filter) = &self.filter { let (hidden, items) = if let Some(filter) = &self.filter {
urls.into_iter().partition(|u| { urls.into_iter().partition(|u| {
(u.is_hidden() && !self.show_hidden) || !u.file_name().is_some_and(|s| filter.matches(s)) (!self.show_hidden && u.is_hidden()) || !u.file_name().is_some_and(|s| filter.matches(s))
}) })
} else if self.show_hidden { } else if self.show_hidden {
(vec![], urls) (vec![], urls)

View file

@ -35,9 +35,10 @@ impl Filter {
} }
} }
#[derive(PartialEq, Eq)] #[derive(Default, PartialEq, Eq)]
pub enum FilterCase { pub enum FilterCase {
Smart, Smart,
#[default]
Sensitive, Sensitive,
Insensitive, Insensitive,
} }

View file

@ -45,7 +45,9 @@ impl Tab {
fn escape_select(&mut self) -> bool { self.select_all(Some(false)) } fn escape_select(&mut self) -> bool { self.select_all(Some(false)) }
#[inline] #[inline]
fn escape_filter(&mut self) -> bool { self.current.files.set_filter(None) } fn escape_filter(&mut self) -> bool {
self.filter_do(super::filter::Opt { query: None, ..Default::default() })
}
#[inline] #[inline]
fn escape_search(&mut self) -> bool { self.search_stop() } fn escape_search(&mut self) -> bool { self.search_stop() }

View file

@ -5,11 +5,12 @@ use tokio_stream::{wrappers::UnboundedReceiverStream, StreamExt};
use yazi_config::popup::InputCfg; use yazi_config::popup::InputCfg;
use yazi_shared::{emit, event::Exec, Debounce, InputError, Layer}; use yazi_shared::{emit, event::Exec, Debounce, InputError, Layer};
use crate::{folder::{Filter, FilterCase}, input::Input, tab::Tab}; use crate::{folder::{Filter, FilterCase}, input::Input, manager::Manager, tab::Tab};
#[derive(Default)]
pub struct Opt<'a> { pub struct Opt<'a> {
query: Option<&'a str>, pub query: Option<&'a str>,
case: FilterCase, pub case: FilterCase,
} }
impl<'a> From<&'a Exec> for Opt<'a> { impl<'a> From<&'a Exec> for Opt<'a> {
@ -59,7 +60,9 @@ impl Tab {
return false; return false;
} }
self.current.repos(hovered); if self.current.repos(hovered) {
Manager::_hover(None);
}
true true
} }
} }