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:
@@ -315,7 +315,8 @@ impl<I: ListItem> View for ListView<I> {
|
|||||||
log::debug!("grabbing scroller");
|
log::debug!("grabbing scroller");
|
||||||
} else {
|
} else {
|
||||||
let viewport = self.scroller.content_viewport().top_left();
|
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);
|
self.move_focus_to(y);
|
||||||
|
|
||||||
let queue = self.queue.clone();
|
let queue = self.queue.clone();
|
||||||
@@ -341,7 +342,8 @@ impl<I: ListItem> View for ListView<I> {
|
|||||||
offset,
|
offset,
|
||||||
} => {
|
} => {
|
||||||
let viewport = self.scroller.content_viewport().top_left();
|
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);
|
self.move_focus_to(y);
|
||||||
|
|
||||||
let queue = self.queue.clone();
|
let queue = self.queue.clone();
|
||||||
|
|||||||
Reference in New Issue
Block a user