浏览代码

Prevent Size being negative.

BDisp 1 年之前
父节点
当前提交
07d7162c8f
共有 3 个文件被更改,包括 23 次插入0 次删除
  1. 5 0
      Terminal.Gui/Views/Scroll/Scroll.cs
  2. 9 0
      UnitTests/Views/ScrollBarTests.cs
  3. 9 0
      UnitTests/Views/ScrollTests.cs

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