diff --git a/Terminal.Gui/Views/TreeView.cs b/Terminal.Gui/Views/TreeView.cs
index 5067295fb..4f8692d74 100644
--- a/Terminal.Gui/Views/TreeView.cs
+++ b/Terminal.Gui/Views/TreeView.cs
@@ -219,19 +219,23 @@ namespace Terminal.Gui {
///
public AspectGetterDelegate AspectGetter { get; set; } = (o) => o.ToString () ?? "";
- CursorVisibility desiredCursorVisibility = CursorVisibility.Default;
+ CursorVisibility desiredCursorVisibility = CursorVisibility.Invisible;
///
- /// Get / Set the wished cursor when the tree is focused
+ /// Get / Set the wished cursor when the tree is focused.
+ /// Only applies when is true.
+ /// Defaults to
///
public CursorVisibility DesiredCursorVisibility {
- get => desiredCursorVisibility;
+ get {
+ return MultiSelect ? desiredCursorVisibility : CursorVisibility.Invisible;
+ }
set {
- if (desiredCursorVisibility != value && HasFocus) {
- Application.Driver.SetCursorVisibility (value);
- }
-
desiredCursorVisibility = value;
+
+ if (desiredCursorVisibility != value && HasFocus) {
+ Application.Driver.SetCursorVisibility (DesiredCursorVisibility);
+ }
}
}
diff --git a/UICatalog/Scenarios/TreeViewFileSystem.cs b/UICatalog/Scenarios/TreeViewFileSystem.cs
index 65ea36566..57fa181c7 100644
--- a/UICatalog/Scenarios/TreeViewFileSystem.cs
+++ b/UICatalog/Scenarios/TreeViewFileSystem.cs
@@ -25,6 +25,8 @@ namespace UICatalog.Scenarios {
private MenuItem miFullPaths;
private MenuItem miLeaveLastRow;
private MenuItem miCustomColors;
+ private MenuItem miCursor;
+ private MenuItem miMultiSelect;
private Terminal.Gui.Attribute green;
private Terminal.Gui.Attribute red;
@@ -54,6 +56,8 @@ namespace UICatalog.Scenarios {
miFullPaths = new MenuItem ("_FullPaths", "", () => SetFullName()){Checked = false, CheckType = MenuItemCheckStyle.Checked},
miLeaveLastRow = new MenuItem ("_LeaveLastRow", "", () => SetLeaveLastRow()){Checked = true, CheckType = MenuItemCheckStyle.Checked},
miCustomColors = new MenuItem ("C_ustomColors", "", () => SetCustomColors()){Checked = false, CheckType = MenuItemCheckStyle.Checked},
+ miCursor = new MenuItem ("Curs_or (MultiSelect only)", "", () => SetCursor()){Checked = false, CheckType = MenuItemCheckStyle.Checked},
+ miMultiSelect = new MenuItem ("_MultiSelect", "", () => SetMultiSelect()){Checked = true, CheckType = MenuItemCheckStyle.Checked},
}),
});
Top.Add (menu);
@@ -269,6 +273,18 @@ namespace UICatalog.Scenarios {
miLeaveLastRow.Checked = !miLeaveLastRow.Checked;
treeViewFiles.Style.LeaveLastRow = miLeaveLastRow.Checked;
}
+ private void SetCursor()
+ {
+ miCursor.Checked = !miCursor.Checked;
+ treeViewFiles.DesiredCursorVisibility = miCursor.Checked ? CursorVisibility.Default : CursorVisibility.Invisible;
+ }
+ private void SetMultiSelect()
+ {
+ miMultiSelect.Checked = !miMultiSelect.Checked;
+ treeViewFiles.MultiSelect = miMultiSelect.Checked;
+ }
+
+
private void SetCustomColors()
{
var yellow = new ColorScheme