diff --git a/Terminal.Gui/View/Layout/PosAlign.cs b/Terminal.Gui/View/Layout/PosAlign.cs
index bb94c7342..9ca4a203b 100644
--- a/Terminal.Gui/View/Layout/PosAlign.cs
+++ b/Terminal.Gui/View/Layout/PosAlign.cs
@@ -44,12 +44,7 @@ public class PosAlign : Pos
///
private static void AlignGroup (int groupId, IList views, Dimension dimension, int size)
{
- if (views is null)
- {
- return;
- }
-
- Aligner firstInGroup = null;
+ Aligner? firstInGroup = null;
List dimensionsList = new ();
List viewsInGroup = views.Where (
@@ -76,7 +71,7 @@ public class PosAlign : Pos
foreach (View view in viewsInGroup)
{
- PosAlign posAlign = dimension == Dimension.Width ? view.X as PosAlign : view.Y as PosAlign;
+ PosAlign? posAlign = dimension == Dimension.Width ? view.X as PosAlign : view.Y as PosAlign;
if (posAlign is { })
{
@@ -100,7 +95,7 @@ public class PosAlign : Pos
for (var index = 0; index < viewsInGroup.Count; index++)
{
View view = viewsInGroup [index];
- PosAlign align = dimension == Dimension.Width ? view.X as PosAlign : view.Y as PosAlign;
+ PosAlign? align = dimension == Dimension.Width ? view.X as PosAlign : view.Y as PosAlign;
if (align is { })
{
@@ -125,13 +120,16 @@ public class PosAlign : Pos
private void Aligner_PropertyChanged (object? sender, PropertyChangedEventArgs e) { _location = null; }
///
- public override bool Equals (object other)
+ public override bool Equals (object? other)
{
- return other is PosAlign align && _groupId == align._groupId && _location == align._location && align.Aligner.Alignment == Aligner.Alignment;
+ return other is PosAlign align &&
+ _groupId == align._groupId &&
+ _location == align._location &&
+ align.Aligner.Alignment == Aligner.Alignment;
}
///
- public override int GetHashCode () { return Aligner.GetHashCode () ^ _groupId.GetHashCode (); }
+ public override int GetHashCode () { return HashCode.Combine (Aligner, _groupId); }
///
public override string ToString () { return $"Align(groupId={_groupId}, alignment={Aligner.Alignment})"; }
diff --git a/UnitTests/Drawing/AlignerTests.cs b/UnitTests/Drawing/AlignerTests.cs
index fd8b0b381..cc4564a95 100644
--- a/UnitTests/Drawing/AlignerTests.cs
+++ b/UnitTests/Drawing/AlignerTests.cs
@@ -228,7 +228,6 @@ public class AlignerTests (ITestOutputHelper output)
[InlineData (Alignment.FirstLeftRestRight, new [] { 10, 20, 30 }, 101, new [] { 0, 50, 71 })]
[InlineData (Alignment.FirstLeftRestRight, new [] { 10, 20, 30, 40 }, 101, new [] { 0, 10, 30, 61 })]
[InlineData (Alignment.FirstLeftRestRight, new [] { 10, 20, 30, 40, 50 }, 151, new [] { 0, 10, 30, 60, 101 })]
- [InlineData (Alignment.FirstLeftRestRight, new [] { 3, 4, 5 }, 21, new [] { 0, 11, 16 })]
public void Alignment_SpaceBetweenItems (Alignment alignment, int [] sizes, int containerSize, int [] expected)
{
int [] positions = new Aligner