Set select_focus when selecting by name or path

This commit is contained in:
Jeremy Soller 2025-02-06 09:05:45 -07:00
parent f823d17524
commit 06b8132aa3
No known key found for this signature in database
GPG key ID: 670FDFB5428E05CA

View file

@ -1844,20 +1844,26 @@ impl Tab {
} }
pub fn select_name(&mut self, name: &str) { pub fn select_name(&mut self, name: &str) {
self.select_focus = None;
if let Some(ref mut items) = self.items_opt { if let Some(ref mut items) = self.items_opt {
for item in items.iter_mut() { for (i, item) in items.iter_mut().enumerate() {
item.selected = item.name == name; item.selected = item.name == name;
if item.selected {
self.select_focus = Some(i);
}
} }
} }
} }
pub fn select_paths(&mut self, paths: Vec<PathBuf>) { pub fn select_paths(&mut self, paths: Vec<PathBuf>) {
self.select_focus = None;
if let Some(ref mut items) = self.items_opt { if let Some(ref mut items) = self.items_opt {
for item in items.iter_mut() { for (i, item) in items.iter_mut().enumerate() {
item.selected = false; item.selected = false;
if let Some(path) = item.path_opt() { if let Some(path) = item.path_opt() {
if paths.contains(path) { if paths.contains(path) {
item.selected = true; item.selected = true;
self.select_focus = Some(i);
} }
} }
} }