diff options
-rw-r--r-- | src/main.rs | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/main.rs b/src/main.rs index 3e1f172..9cdaefe 100644 --- a/src/main.rs +++ b/src/main.rs @@ -552,18 +552,17 @@ impl Instance { KeyCode::Delete => self.search.clear(), KeyCode::Enter => { if let Some(selected) = self.list_state.selected() { - if let Some(fmatch) = self - .files - .iter() - .enumerate() - .cycle() - .skip(selected + 1) - .find(|(_, file)| { - file.to_str() - .unwrap() - .to_lowercase() - .contains(&self.search.to_lowercase()) - }) + if let Some(fmatch) = + std::iter::repeat(self.files.iter().enumerate()) + .take(2) + .flatten() + .skip(selected + 1) + .find(|(_, file)| { + file.to_str() + .unwrap() + .to_lowercase() + .contains(&self.search.to_lowercase()) + }) { self.list_state.select(Some(fmatch.0)); } |