2
0
Эх сурвалжийг харах

Merge pull request #3468 from BDisp/v2_3467_views-without-subviews-cursor-fix

Fixes #3467. Views without subviews can't show the cursor.
Tig 1 жил өмнө
parent
commit
2dbfbfc881

+ 8 - 3
Terminal.Gui/Application.cs

@@ -574,10 +574,16 @@ public static partial class Application
 
         if (mostFocused is null)
         {
-            return false;
+            if (view is { HasFocus: true })
+            {
+                mostFocused = view;
+            }
+            else
+            {
+                return false;
+            }
         }
 
-
         // If the view is not visible or enabled, don't position the cursor
         if (!mostFocused.Visible || !mostFocused.Enabled)
         {
@@ -598,7 +604,6 @@ public static partial class Application
             return false;
         }
 
-        Point? prevCursor = new (Driver.Row, Driver.Col);
         Point? cursor = mostFocused.PositionCursor ();
 
         Driver.GetCursorVisibility (out CursorVisibility currentCursorVisibility);

+ 2 - 3
UnitTests/Application/CursorTests.cs

@@ -111,7 +111,7 @@ public class CursorTests
         Assert.False (Application.PositionCursor (view));
     }
 
-    [Fact, Trait("BUGBUG", "Views without subviews don't support Focused or MostFocused")]
+    [Fact]
     [SetupFakeDriver]
     public void PositionCursor_Focused_With_Position_Returns_True ()
     {
@@ -124,7 +124,7 @@ public class CursorTests
         view.CanFocus = true;
         view.SetFocus ();
         view.TestLocation = new Point (0, 0);
-        Assert.False (Application.PositionCursor (view));  // BUGBUG: This should be true
+        Assert.True (Application.PositionCursor (view));
     }
 
     [Fact]
@@ -144,5 +144,4 @@ public class CursorTests
         Application.Driver.GetCursorVisibility (out CursorVisibility cursor);
         Assert.Equal (CursorVisibility.Invisible, cursor);
     }
-
 }