diff --git a/Terminal.Gui/Views/ListView.cs b/Terminal.Gui/Views/ListView.cs
index e6add2e6e..b32d0f4dd 100644
--- a/Terminal.Gui/Views/ListView.cs
+++ b/Terminal.Gui/Views/ListView.cs
@@ -346,6 +346,12 @@ namespace Terminal.Gui {
OnOpenSelectedItem ();
break;
+ case Key.End:
+ return MoveEnd ();
+
+ case Key.Home:
+ return MoveHome ();
+
}
return base.ProcessKey (kb);
}
@@ -459,6 +465,38 @@ namespace Terminal.Gui {
return true;
}
+ ///
+ /// Moves the selected item index to the last row.
+ ///
+ ///
+ public virtual bool MoveEnd ()
+ {
+ if (selected != source.Count - 1) {
+ selected = source.Count - 1;
+ top = selected;
+ OnSelectedChanged ();
+ SetNeedsDisplay ();
+ }
+
+ return true;
+ }
+
+ ///
+ /// Moves the selected item index to the first row.
+ ///
+ ///
+ public virtual bool MoveHome ()
+ {
+ if (selected != 0) {
+ selected = 0;
+ top = selected;
+ OnSelectedChanged ();
+ SetNeedsDisplay ();
+ }
+
+ return true;
+ }
+
int lastSelectedItem = -1;
///