Made CursorLeft/CursorRight change focus when cursor position is at start/end of a TextView (#1271)

This commit is contained in:
Thomas Nind
2021-05-02 19:22:04 +01:00
committed by GitHub
parent 8dabd16975
commit 71e719fb2b

View File

@@ -1944,6 +1944,25 @@ namespace Terminal.Gui {
int restCount;
List<Rune> rest;
// if the user presses Left (without any control keys) and they are at the start of the text
if(kb.Key == Key.CursorLeft && currentColumn == 0 && currentRow == 0) {
// do not respond (this lets the key press fall through to navigation system - which usually changes focus backward)
return false;
}
// if the user presses Right (without any control keys)
if (kb.Key == Key.CursorRight) {
// determine where the last cursor position in the text is
var lastRow = model.Count - 1;
var lastCol = model.GetLine (lastRow).Count;
// if they are at the very end of all the text do not respond (this lets the key press fall through to navigation system - which usually changes focus forward)
if (currentColumn == lastCol && currentRow == lastRow) {
return false;
}
}
// Handle some state here - whether the last command was a kill
// operation and the column tracking (up/down)
switch (kb.Key) {