diff --git a/spec/LayoutSpec.js b/spec/LayoutSpec.js index a3fdd4d0..dc99bc17 100755 --- a/spec/LayoutSpec.js +++ b/spec/LayoutSpec.js @@ -490,6 +490,17 @@ describe('Layout', function() { ); }); + it('should layout node with padding and a child with margin', function() { + testLayout( + {style: {padding: 5}, children: [ + {style: {margin: 5}} + ]}, + {width: 20, height: 20, top: 0, left: 0, children: [ + {width: 0, height: 0, top: 10, left: 10} + ]} + ); + }); + it('should layout randomly', function() { function RNG(seed) { this.state = seed; diff --git a/src/Layout.js b/src/Layout.js index 6636037c..5eb3025a 100755 --- a/src/Layout.js +++ b/src/Layout.js @@ -164,7 +164,7 @@ function computeLayout(node) { } } - var crossDim = getPadding(node, leading[crossAxis]); + var crossDim = 0; var mainPos = getPadding(node, leading[mainAxis]) + leadingMainDim; children.forEach(function(child) { child.layout[pos[mainAxis]] += mainPos; @@ -178,7 +178,8 @@ function computeLayout(node) { } }); mainPos += getPadding(node, trailing[mainAxis]); - crossDim += getPadding(node, trailing[crossAxis]); + crossDim += getPadding(node, leading[crossAxis]) + + getPadding(node, trailing[crossAxis]); if (node.layout[dim[mainAxis]] === undefined && !mainDimInStyle) { node.layout[dim[mainAxis]] = Math.max(mainPos, 0);