in src/StructuredLogViewer.Avalonia/Controls/SplitterPanel.cs [169:234]
private void UpdateSplitterVisibility()
{
bool isFirstChildVisible = FirstChild != null && FirstChild.IsVisible;
bool isSecondChildVisible = SecondChild != null && SecondChild.IsVisible;
bool areBothVisible = isFirstChildVisible && isSecondChildVisible;
gridSplitter.IsVisible = areBothVisible;
if (Orientation == Orientation.Horizontal)
{
if (ColumnDefinitions.Count == 3)
{
if (isFirstChildVisible)
{
if (oldFirstSize == default(GridLength) || oldFirstSize == zero)
{
oldFirstSize = FirstChildRelativeSize;
}
if (ColumnDefinitions[0].Width == zero)
{
ColumnDefinitions[0].Width = oldFirstSize;
}
}
else
{
if (ColumnDefinitions[0].Width != zero)
{
oldFirstSize = ColumnDefinitions[0].Width;
}
ColumnDefinitions[0].Width = zero;
}
if (areBothVisible)
{
ColumnDefinitions[1].Width = separatorSize;
}
else
{
ColumnDefinitions[1].Width = zero;
}
if (isSecondChildVisible)
{
if (oldSecondSize == default(GridLength) || oldSecondSize == zero)
{
oldSecondSize = SecondChildRelativeSize;
}
if (ColumnDefinitions[2].Width == zero)
{
ColumnDefinitions[2].Width = oldSecondSize;
}
}
else
{
if (ColumnDefinitions[2].Width != zero)
{
oldSecondSize = ColumnDefinitions[2].Width;
}
ColumnDefinitions[2].Width = zero;
}
}
}
}