From e632a120498ec1b7c3aba691f385b0a09293a83b Mon Sep 17 00:00:00 2001 From: BDisp Date: Thu, 27 Feb 2025 17:01:42 +0000 Subject: [PATCH] Fixes #3881. PositionCursor broke with recent ConsoleDriver changes. (#3927) --- .../ConsoleDrivers/WindowsDriver/WindowsConsole.cs | 2 +- .../ConsoleDrivers/WindowsDriver/WindowsDriver.cs | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) 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; } ///