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
This commit is contained in:
Henrik Friedrichsen
2022-08-19 00:41:19 +02:00
parent 81010fc453
commit 2311e49ea2

View File

@@ -315,7 +315,8 @@ impl<I: ListItem> View for ListView<I> {
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<I: ListItem> View for ListView<I> {
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();