Index: sky/sdk/lib/framework/rendering/box.dart |
diff --git a/sky/sdk/lib/framework/rendering/box.dart b/sky/sdk/lib/framework/rendering/box.dart |
index b3ee6cddf6301afcd9e11f8c81bb8c84460ba568..a749a33379b567baa1cac0e04f874733946ef80c 100644 |
--- a/sky/sdk/lib/framework/rendering/box.dart |
+++ b/sky/sdk/lib/framework/rendering/box.dart |
@@ -4,6 +4,7 @@ |
import 'node.dart'; |
import 'dart:sky' as sky; |
+import 'dart:math' as math; |
// GENERIC BOX RENDERING |
// Anything that has a concept of x, y, width, height is going to derive from this |
@@ -40,11 +41,13 @@ class BoxConstraints { |
BoxConstraints deflate(EdgeDims edges) { |
assert(edges != null); |
+ var horizontal = edges.left + edges.right; |
+ var vertical = edges.top + edges.bottom; |
abarth-chromium
2015/06/03 17:22:33
s/var/double/
|
return new BoxConstraints( |
- minWidth: minWidth, |
- maxWidth: maxWidth - (edges.left + edges.right), |
- minHeight: minHeight, |
- maxHeight: maxHeight - (edges.top + edges.bottom) |
+ minWidth: math.min(0.0, minWidth - horizontal), |
+ maxWidth: maxWidth - horizontal, |
+ minHeight: math.min(0.0, minHeight - vertical), |
+ maxHeight: maxHeight - vertical |
); |
} |
@@ -171,7 +174,8 @@ class RenderSizedBox extends RenderProxyBox { |
void performLayout() { |
size = constraints.constrain(_desiredSize); |
- child.layout(new BoxConstraints.tight(size)); |
+ if (child != null) |
+ child.layout(new BoxConstraints.tight(size)); |
} |
} |