diff --git a/Terminal.Gui/Views/TextView.cs b/Terminal.Gui/Views/TextView.cs
index c484cf802..398bd926b 100644
--- a/Terminal.Gui/Views/TextView.cs
+++ b/Terminal.Gui/Views/TextView.cs
@@ -234,6 +234,18 @@ namespace Terminal.Gui {
///
///
/// -
+ /// Control-Home
+ ///
+ /// Scrolls to the first line and moves the cursor there.
+ ///
+ ///
+ /// -
+ /// Control-End
+ ///
+ /// Scrolls to the last line and moves the cursor there.
+ ///
+ ///
+ /// -
/// Delete, Control-d
///
/// Deletes the character in front of the cursor.
@@ -1004,15 +1016,11 @@ namespace Terminal.Gui {
break;
case Key.CtrlMask | Key.End:
- currentRow = model.Count;
- TrackColumn ();
- PositionCursor ();
+ MoveEnd ();
break;
case Key.CtrlMask | Key.Home:
- currentRow = 0;
- TrackColumn ();
- PositionCursor ();
+ MoveHome ();
break;
default:
@@ -1086,6 +1094,26 @@ namespace Terminal.Gui {
Rune RuneAt (int col, int row) => model.GetLine (row) [col];
+ ///
+ /// Will scroll the to the last line and position the cursor there.
+ ///
+ public void MoveEnd ()
+ {
+ currentRow = model.Count - 1;
+ TrackColumn ();
+ PositionCursor ();
+ }
+
+ ///
+ /// Will scroll the to the first line and position the cursor there.
+ ///
+ public void MoveHome ()
+ {
+ currentRow = 0;
+ TrackColumn ();
+ PositionCursor ();
+ }
+
bool MoveNext (ref int col, ref int row, out Rune rune)
{
var line = model.GetLine (row);