Browse Source

Fixes #3881. PositionCursor broke with recent ConsoleDriver changes. (#3927)

BDisp 5 tháng trước cách đây
mục cha
commit
e632a12049

+ 1 - 1
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 ()

+ 9 - 2
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;
     }
 
     /// <inheritdoc/>