mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-27 00:07:58 +01:00
Made CursorLeft/CursorRight change focus when cursor position is at start/end of a TextView (#1271)
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user