Jelajahi Sumber

Integrating tznid's latest

Charlie Kindel 2 tahun lalu
induk
melakukan
b713d6a467

+ 3 - 1
Terminal.Gui/Core/SearchCollectionNavigator.cs

@@ -139,7 +139,9 @@ namespace Terminal.Gui {
 		/// <returns></returns>
 		public static bool IsCompatibleKey (KeyEvent kb)
 		{
-			return !kb.IsAlt && !kb.IsCapslock && !kb.IsCtrl && !kb.IsScrolllock && !kb.IsNumlock;
+			// For some reason, at least on Windows/Windows Terminal, `$` is coming through with `IsAlt == true`
+			//return !kb.IsAlt && !kb.IsCapslock && !kb.IsCtrl && !kb.IsScrolllock && !kb.IsNumlock;
+			return !kb.IsCapslock && !kb.IsCtrl && !kb.IsScrolllock && !kb.IsNumlock;
 		}
 	}
 }

+ 3 - 4
Terminal.Gui/Views/TreeView.cs

@@ -594,7 +594,7 @@ namespace Terminal.Gui {
 					// SearchCollectionNavigator then we need a new one to reflect the new exposed
 					// tree state
 					if (cachedLineMap == null || searchCollectionNavigator == null) {
-						 map = BuildLineMap ();
+						map = BuildLineMap ();
 						searchCollectionNavigator = new SearchCollectionNavigator (map.Select (b => AspectGetter (b.Model)).ToArray ());
 					}
 					else {
@@ -606,13 +606,12 @@ namespace Terminal.Gui {
 					var current = map.IndexOf (b => b.Model == SelectedObject);
 					var newIndex = searchCollectionNavigator.CalculateNewIndex (current, (char)keyEvent.KeyValue);
 
-					if (newIndex != -1) {
+					if (newIndex != current) {
 						SelectedObject = map.ElementAt (newIndex).Model;
 						EnsureVisible (selectedObject);
 						SetNeedsDisplay ();
+						return true;
 					}
-
-					return true;
 				}
 
 			} finally {

+ 5 - 4
UICatalog/Scenarios/SearchCollectionNavigatorTester.cs

@@ -150,9 +150,9 @@ namespace UICatalog.Scenarios {
 			Top.Add (label);
 
 			_treeView = new TreeView () {
-				X = Pos.Right (_listView) + 2,
+				X = Pos.Right (_listView) + 1,
 				Y = Pos.Bottom (label),
-				Width = Dim.Percent (50) - 1,
+				Width = Dim.Fill (),
 				Height = Dim.Fill (),
 				ColorScheme = Colors.TopLevel
 			};
@@ -210,11 +210,12 @@ namespace UICatalog.Scenarios {
 			
 			items.Sort (StringComparer.OrdinalIgnoreCase);
 			var root = new TreeNode ("Alpha examples");
-			root.Children = items.Where (i => char.IsLetterOrDigit (i [0])).Select (i => new TreeNode (i)).Cast<ITreeNode>().ToList ();
-			_treeView.AddObject (root);
+			//root.Children = items.Where (i => char.IsLetterOrDigit (i [0])).Select (i => new TreeNode (i)).Cast<ITreeNode>().ToList ();
+			//_treeView.AddObject (root);
 			root = new TreeNode ("Non-Alpha examples");
 			root.Children = items.Where (i => !char.IsLetterOrDigit (i [0])).Select (i => new TreeNode (i)).Cast<ITreeNode> ().ToList ();
 			_treeView.AddObject (root);
+			_treeView.ExpandAll ();
 		}
 		private void Quit ()
 		{