diff --git a/Terminal.Gui/ConsoleDrivers/WindowsDriver/WindowsConsole.cs b/Terminal.Gui/ConsoleDrivers/WindowsDriver/WindowsConsole.cs index 2c6689737..0d9a56254 100644 --- a/Terminal.Gui/ConsoleDrivers/WindowsDriver/WindowsConsole.cs +++ b/Terminal.Gui/ConsoleDrivers/WindowsDriver/WindowsConsole.cs @@ -334,7 +334,7 @@ internal class WindowsConsole visibility = CursorVisibility.Default; } - return true; + return visibility != CursorVisibility.Invisible; } public bool EnsureCursorVisibility () diff --git a/Terminal.Gui/ConsoleDrivers/WindowsDriver/WindowsDriver.cs b/Terminal.Gui/ConsoleDrivers/WindowsDriver/WindowsDriver.cs index 02d8a03ff..db680d5c7 100644 --- a/Terminal.Gui/ConsoleDrivers/WindowsDriver/WindowsDriver.cs +++ b/Terminal.Gui/ConsoleDrivers/WindowsDriver/WindowsDriver.cs @@ -268,12 +268,19 @@ internal class WindowsDriver : ConsoleDriver { if (WinConsole is { }) { - return WinConsole.GetCursorVisibility (out visibility); + bool result = WinConsole.GetCursorVisibility (out visibility); + + if (_cachedCursorVisibility is { } && visibility != _cachedCursorVisibility) + { + _cachedCursorVisibility = visibility; + } + + return result; } visibility = _cachedCursorVisibility ?? CursorVisibility.Default; - return true; + return visibility != CursorVisibility.Invisible; } ///