Browse Source

Prevent Size being negative.

BDisp 11 months ago
parent
commit
07d7162c8f

+ 5 - 0
Terminal.Gui/Views/Scroll/Scroll.cs

@@ -145,6 +145,11 @@ public class Scroll : View
         get => _size;
         set
         {
+            if (value == _size || value < 0)
+            {
+                return;
+            }
+
             _size = value;
             OnSizeChanged (_size);
             AdjustScroll ();

+ 9 - 0
UnitTests/Views/ScrollBarTests.cs

@@ -1031,6 +1031,15 @@ public class ScrollBarTests
         scrollBarSuperView.SuperView!.Dispose ();
     }
 
+    [Fact]
+    public void Size_Cannot_Be_Negative ()
+    {
+        var scrollBar = new ScrollBar { Height = 10, Size = -1 };
+        Assert.Equal (0, scrollBar.Size);
+        scrollBar.Size = -10;
+        Assert.Equal (0, scrollBar.Size);
+    }
+
     [Fact]
     public void SizeChanged_Event ()
     {

+ 9 - 0
UnitTests/Views/ScrollTests.cs

@@ -896,6 +896,15 @@ public class ScrollTests
         }
     }
 
+    [Fact]
+    public void Size_Cannot_Be_Negative ()
+    {
+        var scroll = new Scroll { Height = 10, Size = -1 };
+        Assert.Equal (0, scroll.Size);
+        scroll.Size = -10;
+        Assert.Equal (0, scroll.Size);
+    }
+
     [Fact]
     public void SizeChanged_Event ()
     {