Skip to content

Commit

Permalink
Merge pull request #119 from amolf-se/master
Browse files Browse the repository at this point in the history
Fix for #118, keep pane ratio when restoring.
  • Loading branch information
Dirkster99 authored Feb 3, 2020
2 parents bee7d18 + a536d26 commit 897e2ea
Showing 1 changed file with 15 additions and 15 deletions.
30 changes: 15 additions & 15 deletions source/Components/AvalonDock/Controls/LayoutPanelControl.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,17 +35,15 @@ internal LayoutPanelControl(LayoutPanel model)

protected override void OnFixChildrenDockLengths()
{
if (ActualWidth == 0.0 ||
ActualHeight == 0.0)
return;
if (ActualWidth == 0.0 || ActualHeight == 0.0) return;

var modelAsPositionableElement = _model as ILayoutPositionableElementWithActualSize;
#region Setup DockWidth/Height for children
if (_model.Orientation == Orientation.Horizontal)
{
if (_model.ContainsChildOfType<LayoutDocumentPane, LayoutDocumentPaneGroup>())
{
for (int i = 0; i < _model.Children.Count; i++)
for (var i = 0; i < _model.Children.Count; i++)
{
var childContainerModel = _model.Children[i] as ILayoutContainer;
var childPositionableModel = _model.Children[i] as ILayoutPositionableElement;
Expand All @@ -54,7 +52,8 @@ protected override void OnFixChildrenDockLengths()
(childContainerModel.IsOfType<LayoutDocumentPane, LayoutDocumentPaneGroup>() ||
childContainerModel.ContainsChildOfType<LayoutDocumentPane, LayoutDocumentPaneGroup>()))
{
childPositionableModel.DockWidth = new GridLength(1.0, GridUnitType.Star);
// Keep set values (from XML for instance)
if(!childPositionableModel.DockWidth.IsStar) childPositionableModel.DockWidth = new GridLength(1.0, GridUnitType.Star);
}
else if (childPositionableModel != null && childPositionableModel.DockWidth.IsStar)
{
Expand All @@ -65,29 +64,28 @@ protected override void OnFixChildrenDockLengths()
widthToSet = Math.Min(widthToSet, ActualWidth / 2.0);
widthToSet = Math.Max(widthToSet, childDockMinWidth);

childPositionableModel.DockWidth = new GridLength(
widthToSet,
GridUnitType.Pixel);
childPositionableModel.DockWidth = new GridLength(widthToSet, GridUnitType.Pixel);
}
}
}
else
{
for (int i = 0; i < _model.Children.Count; i++)
for (var i = 0; i < _model.Children.Count; i++)
{
var childPositionableModel = _model.Children[i] as ILayoutPositionableElement;
if (!childPositionableModel.DockWidth.IsStar)
{
childPositionableModel.DockWidth = new GridLength(1.0, GridUnitType.Star);
// Keep set values (from XML for instance)
if(!childPositionableModel.DockWidth.IsStar) childPositionableModel.DockWidth = new GridLength(1.0, GridUnitType.Star);
}
}
}
}
else
else // Vertical
{
if (_model.ContainsChildOfType<LayoutDocumentPane, LayoutDocumentPaneGroup>())
{
for (int i = 0; i < _model.Children.Count; i++)
for (var i = 0; i < _model.Children.Count; i++)
{
var childContainerModel = _model.Children[i] as ILayoutContainer;
var childPositionableModel = _model.Children[i] as ILayoutPositionableElement;
Expand All @@ -96,7 +94,8 @@ protected override void OnFixChildrenDockLengths()
(childContainerModel.IsOfType<LayoutDocumentPane, LayoutDocumentPaneGroup>() ||
childContainerModel.ContainsChildOfType<LayoutDocumentPane, LayoutDocumentPaneGroup>()))
{
childPositionableModel.DockHeight = new GridLength(1.0, GridUnitType.Star);
// Keep set values (from XML for instance)
if(!childPositionableModel.DockHeight.IsStar) childPositionableModel.DockHeight = new GridLength(1.0, GridUnitType.Star);
}
else if (childPositionableModel != null && childPositionableModel.DockHeight.IsStar)
{
Expand All @@ -112,12 +111,13 @@ protected override void OnFixChildrenDockLengths()
}
else
{
for (int i = 0; i < _model.Children.Count; i++)
for (var i = 0; i < _model.Children.Count; i++)
{
var childPositionableModel = _model.Children[i] as ILayoutPositionableElement;
if (!childPositionableModel.DockHeight.IsStar)
{
childPositionableModel.DockHeight = new GridLength(1.0, GridUnitType.Star);
// Keep set values (from XML for instance)
if(!childPositionableModel.DockHeight.IsStar) childPositionableModel.DockHeight = new GridLength(1.0, GridUnitType.Star);
}
}
}
Expand Down

0 comments on commit 897e2ea

Please sign in to comment.