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 3414c2fe5..57fa181c7 100644 --- a/UICatalog/Scenarios/TreeViewFileSystem.cs +++ b/UICatalog/Scenarios/TreeViewFileSystem.cs @@ -26,6 +26,7 @@ namespace UICatalog.Scenarios { private MenuItem miLeaveLastRow; private MenuItem miCustomColors; private MenuItem miCursor; + private MenuItem miMultiSelect; private Terminal.Gui.Attribute green; private Terminal.Gui.Attribute red; @@ -55,7 +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", "", () => SetCursor()){Checked = true, 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); @@ -276,6 +278,12 @@ namespace UICatalog.Scenarios { 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() {