mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-26 15:57:56 +01:00
Merge pull request #3468 from BDisp/v2_3467_views-without-subviews-cursor-fix
Fixes #3467. Views without subviews can't show the cursor.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user