ソースを参照

Prevents OnEnter throw exception if IsInitialized is false.

BDisp 2 年 前
コミット
a0c0d18a5a
2 ファイル変更13 行追加2 行削除
  1. 3 2
      Terminal.Gui/Views/ListView.cs
  2. 10 0
      UnitTests/Views/ListViewTests.cs

+ 3 - 2
Terminal.Gui/Views/ListView.cs

@@ -721,8 +721,9 @@ namespace Terminal.Gui {
 		///<inheritdoc/>
 		public override bool OnEnter (View view)
 		{
-			Application.Driver.SetCursorVisibility (CursorVisibility.Invisible);
-
+			if (IsInitialized) {
+				Application.Driver.SetCursorVisibility (CursorVisibility.Invisible);
+			}
 			if (lastSelectedItem != selected) {
 				EnsureSelectedItemVisible ();
 			}

+ 10 - 0
UnitTests/Views/ListViewTests.cs

@@ -531,5 +531,15 @@ Item 6", output);
 			var exception = Record.Exception (() => lv.SelectedItem = -1);
 			Assert.Null (exception);
 		}
+
+		[Fact]
+		public void OnEnter_Does_Not_Throw_Exception ()
+		{
+			var lv = new ListView ();
+			var top = new View ();
+			top.Add (lv);
+			var exception = Record.Exception (lv.SetFocus);
+			Assert.Null (exception);
+		}
 	}
 }