mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-30 01:38:01 +01:00
Added PositionCursor implementation
This commit is contained in:
@@ -649,6 +649,28 @@ namespace Terminal.Gui {
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Positions the cursor at the start of the selected objects line (if visible)
|
||||
/// </summary>
|
||||
public override void PositionCursor()
|
||||
{
|
||||
if (CanFocus && HasFocus && Visible && SelectedObject != null)
|
||||
{
|
||||
var map = BuildLineMap();
|
||||
var idx = Array.FindIndex(map,b=>b.Model.Equals(SelectedObject));
|
||||
|
||||
// if currently selected line is visible
|
||||
if(idx - ScrollOffset >= 0 && idx - ScrollOffset < Bounds.Height)
|
||||
Move(0,idx - ScrollOffset);
|
||||
else
|
||||
base.PositionCursor();
|
||||
|
||||
} else {
|
||||
base.PositionCursor();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Determines systems behaviour when the left arrow key is pressed. Default behaviour is to collapse the current tree node if possible otherwise changes selection to current branches parent
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user