diff --git a/src/ui/listview.rs b/src/ui/listview.rs index c878401..fd56fa9 100644 --- a/src/ui/listview.rs +++ b/src/ui/listview.rs @@ -315,7 +315,8 @@ impl View for ListView { log::debug!("grabbing scroller"); } else { let viewport = self.scroller.content_viewport().top_left(); - if let Some(y) = position.checked_sub(offset).map(|p| p.y + viewport.y) { + let selected_row = position.checked_sub(offset).map(|p| p.y + viewport.y); + if let Some(y) = selected_row.filter(|row| row < &self.content_len(false)) { self.move_focus_to(y); let queue = self.queue.clone(); @@ -341,7 +342,8 @@ impl View for ListView { offset, } => { let viewport = self.scroller.content_viewport().top_left(); - if let Some(y) = position.checked_sub(offset).map(|p| p.y + viewport.y) { + let selected_row = position.checked_sub(offset).map(|p| p.y + viewport.y); + if let Some(y) = selected_row.filter(|row| row < &self.content_len(false)) { self.move_focus_to(y); let queue = self.queue.clone();