Kaynağa Gözat

Fixes 2368. Nested views with height of 1 not rendering correctly. (#2370)

BDisp 2 yıl önce
ebeveyn
işleme
47eb43fd6e

+ 2 - 2
Terminal.Gui/Core/TextFormatter.cs

@@ -1190,8 +1190,8 @@ namespace Terminal.Gui {
 			for (int line = 0; line < linesFormated.Count; line++) {
 				if ((isVertical && line > bounds.Width) || (!isVertical && line > bounds.Height))
 					continue;
-				if ((isVertical && line >= maxBounds.Left + maxBounds.Width - 1)
-					|| (!isVertical && line >= maxBounds.Top + maxBounds.Height - 1))
+				if ((isVertical && line >= maxBounds.Left + maxBounds.Width)
+					|| (!isVertical && line >= maxBounds.Top + maxBounds.Height))
 
 					break;
 

+ 27 - 0
UnitTests/Views/ViewTests.cs

@@ -1,5 +1,6 @@
 using NStack;
 using System;
+using Terminal.Gui.Graphs;
 using Xunit;
 using Xunit.Abstractions;
 //using GraphViewTests = Terminal.Gui.Views.GraphViewTests;
@@ -4489,5 +4490,31 @@ At 0,0
   A text with some long width
    A text witith two lines.  ", output);
 		}
+
+		[Fact, AutoInitShutdown]
+		public void Test_Nested_Views_With_Height_Equal_To_One ()
+		{
+			var v = new View () { Width = 11, Height = 3, ColorScheme = new ColorScheme () };
+
+			var top = new View () { Width = Dim.Fill (), Height = 1 };
+			var bottom = new View () { Width = Dim.Fill (), Height = 1, Y = 2 };
+
+			top.Add (new Label ("111"));
+			v.Add (top);
+			v.Add (new LineView (Orientation.Horizontal) { Y = 1 });
+			bottom.Add (new Label ("222"));
+			v.Add (bottom);
+
+			v.LayoutSubviews ();
+			v.Redraw (v.Bounds);
+
+
+			string looksLike =
+@"    
+111
+───────────
+222";
+			TestHelpers.AssertDriverContentsAre (looksLike, output);
+		}
 	}
 }