diff --git a/yazi-actor/src/mgr/exclude_add.rs b/yazi-actor/src/mgr/exclude_add.rs index 1238fcc1..089e630a 100644 --- a/yazi-actor/src/mgr/exclude_add.rs +++ b/yazi-actor/src/mgr/exclude_add.rs @@ -7,7 +7,7 @@ use yazi_core::tab::Folder; use yazi_fs::{FolderStage, IgnoreFilter}; use yazi_macro::{act, render, render_and, succ}; use yazi_parser::mgr::ExcludeAddOpt; -use yazi_shared::{data::Data, url::UrlLike}; +use yazi_shared::{data::Data, path::PathLike, url::UrlLike}; use crate::{Actor, Ctx}; @@ -127,7 +127,7 @@ impl Actor for ExcludeAdd { // Load ignore filter with merged patterns let ignore_filter = IgnoreFilter::from_patterns(glob_matcher.clone()); - let hovered = cx.hovered().map(|f| f.urn().to_owned()); + let hovered = cx.hovered().map(|f| f.urn().owned()); let apply = |f: &mut Folder, filter: Option| { let changed = f.files.set_ignore_filter(filter); if f.stage == FolderStage::Loading { @@ -315,7 +315,7 @@ impl Actor for ExcludeAdd { if apply(h, hovered_filter) { render!(h.repos(None)); act!(mgr:peek, cx, true)?; - } else if hovered != cx.hovered().map(|f| f.urn().to_owned()) { + } else if cx.hovered().map(|f| f.urn()) != hovered.as_ref().map(Into::into) { act!(mgr:peek, cx)?; act!(mgr:watch, cx)?; } diff --git a/yazi-actor/src/mgr/excluded.rs b/yazi-actor/src/mgr/excluded.rs index 943d5213..b01e0468 100644 --- a/yazi-actor/src/mgr/excluded.rs +++ b/yazi-actor/src/mgr/excluded.rs @@ -3,7 +3,7 @@ use yazi_core::tab::Folder; use yazi_fs::FolderStage; use yazi_macro::{act, render, render_and, succ}; use yazi_parser::mgr::ExcludedOpt; -use yazi_shared::data::Data; +use yazi_shared::{data::Data, path::PathLike}; use crate::{Actor, Ctx}; @@ -18,7 +18,7 @@ impl Actor for Excluded { let current_state = cx.tab().current.files.show_excluded(); let state = opt.state.bool(current_state); - let hovered = cx.hovered().map(|f| f.urn().to_owned()); + let hovered = cx.hovered().map(|f| f.urn().owned()); let apply = |f: &mut Folder| { if f.stage == FolderStage::Loading { render!(); @@ -43,7 +43,7 @@ impl Actor for Excluded { { render!(h.repos(None)); act!(mgr:peek, cx, true)?; - } else if hovered != cx.hovered().map(|f| f.urn().to_owned()) { + } else if cx.hovered().map(|f| f.urn()) != hovered.as_ref().map(Into::into) { act!(mgr:peek, cx)?; act!(mgr:watch, cx)?; } diff --git a/yazi-actor/src/mgr/ignore.rs b/yazi-actor/src/mgr/ignore.rs index 9862af59..03e4e990 100644 --- a/yazi-actor/src/mgr/ignore.rs +++ b/yazi-actor/src/mgr/ignore.rs @@ -6,7 +6,7 @@ use yazi_core::tab::Folder; use yazi_fs::{FolderStage, IgnoreFilter}; use yazi_macro::{act, render, render_and, succ}; use yazi_parser::VoidOpt; -use yazi_shared::{data::Data, url::UrlLike}; +use yazi_shared::{data::Data, path::PathLike, url::UrlLike}; use crate::{Actor, Ctx}; @@ -41,7 +41,7 @@ impl Actor for Ignore { // Load ignore filter from exclude patterns let ignore_filter = IgnoreFilter::from_patterns(glob_matcher.clone()); - let hovered = cx.hovered().map(|f| f.urn().to_owned()); + let hovered = cx.hovered().map(|f| f.urn().owned()); let apply = |f: &mut Folder, filter: Option| { // Always set the filter, even when loading let changed = f.files.set_ignore_filter(filter); @@ -103,7 +103,7 @@ impl Actor for Ignore { if apply(h, hovered_filter) { render!(h.repos(None)); act!(mgr:peek, cx, true)?; - } else if hovered != cx.hovered().map(|f| f.urn().to_owned()) { + } else if cx.hovered().map(|f| f.urn()) != hovered.as_ref().map(Into::into) { act!(mgr:peek, cx)?; act!(mgr:watch, cx)?; }