Index: sky/sdk/lib/framework/layout2.dart |
diff --git a/sky/sdk/lib/framework/layout2.dart b/sky/sdk/lib/framework/layout2.dart |
index 967ea8e79fa01063af57090b1aa22fd2b3df0f7d..f0f834fb36a1cac9b35d50073d5d0a29322f3bed 100644 |
--- a/sky/sdk/lib/framework/layout2.dart |
+++ b/sky/sdk/lib/framework/layout2.dart |
@@ -716,16 +716,15 @@ class RenderBlock extends RenderDecoratedBox with ContainerRenderNodeMixin<Rende |
height: constraints.constrainHeight(outerHeight)); |
} |
- double _minHeight; // value cached from parent for relayout call |
- double _maxHeight; // value cached from parent for relayout call |
+ BoxConstraints _constraints; // value cached from parent for relayout call |
void layout(BoxConstraints constraints, { RenderNode relayoutSubtreeRoot }) { |
if (relayoutSubtreeRoot != null) |
saveRelayoutSubtreeRoot(relayoutSubtreeRoot); |
- relayoutSubtreeRoot = relayoutSubtreeRoot == null ? this : relayoutSubtreeRoot; |
+ else |
+ relayoutSubtreeRoot = this; |
width = constraints.constrainWidth(constraints.maxWidth); |
assert(width < double.INFINITY); |
- _minHeight = constraints.minHeight; |
- _maxHeight = constraints.maxHeight; |
+ _constraints = constraints; |
internalLayout(relayoutSubtreeRoot); |
} |
@@ -734,8 +733,7 @@ class RenderBlock extends RenderDecoratedBox with ContainerRenderNodeMixin<Rende |
} |
void internalLayout(RenderNode relayoutSubtreeRoot) { |
- assert(_minHeight != null); |
- assert(_maxHeight != null); |
+ assert(_constraints != null); |
double y = _padding.top; |
double innerWidth = width - (_padding.left + _padding.right); |
RenderBox child = firstChild; |
@@ -748,7 +746,7 @@ class RenderBlock extends RenderDecoratedBox with ContainerRenderNodeMixin<Rende |
y += child.height; |
child = child.parentData.nextSibling; |
} |
- height = clamp(min: _minHeight, value: y + _padding.bottom, max: _maxHeight); |
+ height = _constraints.constrainHeight(y + _padding.bottom); |
layoutDone(); |
} |
@@ -803,7 +801,8 @@ class RenderFlex extends RenderDecoratedBox with ContainerRenderNodeMixin<Render |
void layout(BoxConstraints constraints, { RenderNode relayoutSubtreeRoot }) { |
if (relayoutSubtreeRoot != null) |
saveRelayoutSubtreeRoot(relayoutSubtreeRoot); |
- relayoutSubtreeRoot = relayoutSubtreeRoot == null ? this : relayoutSubtreeRoot; |
+ else |
+ relayoutSubtreeRoot = this; |
_constraints = constraints; |
width = _constraints.constrainWidth(_constraints.maxWidth); |
height = _constraints.constrainHeight(_constraints.maxHeight); |