"In" modifier for ref readonly struct, StackPanel force rerender fix
This commit is contained in:
@@ -39,7 +39,7 @@ public partial class StackPanel<T> : ChildContainerView<T>, IVisibilityChangeHan
|
||||
return new Size(width, height);
|
||||
}
|
||||
|
||||
protected override bool DefaultRenderer(RenderContext renderContext, Position position, Size size)
|
||||
protected override bool DefaultRenderer(in RenderContext renderContext, Position position, Size size)
|
||||
{
|
||||
var delta = 0;
|
||||
var neededRerender = false;
|
||||
@@ -56,15 +56,6 @@ public partial class StackPanel<T> : ChildContainerView<T>, IVisibilityChangeHan
|
||||
|
||||
if (!_requestedSizes.TryGetValue(child, out var childSize)) throw new Exception("Child size not found");
|
||||
|
||||
if (forceRerenderChildren.Contains(child))
|
||||
{
|
||||
renderContext = new RenderContext(
|
||||
renderContext.ConsoleDriver,
|
||||
true,
|
||||
renderContext.Foreground,
|
||||
renderContext.Background
|
||||
);
|
||||
}
|
||||
|
||||
var childPosition = Orientation == Orientation.Vertical
|
||||
? position with {Y = position.Y + delta}
|
||||
@@ -84,7 +75,21 @@ public partial class StackPanel<T> : ChildContainerView<T>, IVisibilityChangeHan
|
||||
childSize = childSize with {Height = endY - childPosition.Y};
|
||||
}
|
||||
|
||||
neededRerender = child.Render(renderContext, childPosition, childSize) || neededRerender;
|
||||
if (forceRerenderChildren.Contains(child))
|
||||
{
|
||||
var rerenderContext = new RenderContext(
|
||||
renderContext.ConsoleDriver,
|
||||
true,
|
||||
renderContext.Foreground,
|
||||
renderContext.Background,
|
||||
renderContext.Statistics
|
||||
);
|
||||
neededRerender = child.Render(rerenderContext, childPosition, childSize) || neededRerender;
|
||||
}
|
||||
else
|
||||
{
|
||||
neededRerender = child.Render(renderContext, childPosition, childSize) || neededRerender;
|
||||
}
|
||||
|
||||
delta += Orientation == Orientation.Vertical
|
||||
? childSize.Height
|
||||
|
||||
Reference in New Issue
Block a user