From 2311e49ea2a47189feeaab416cb422fcf4b79177 Mon Sep 17 00:00:00 2001 From: Henrik Friedrichsen Date: Fri, 19 Aug 2022 00:41:19 +0200 Subject: [PATCH] Don't open item/context menu for clicks after end The previous behavior would select and open the last item if the user clicked a row after the last item. This change prevents such a behavior as it can be misleading. Related to #840 --- src/ui/listview.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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();