Move condition to the non-redundant block
No need to check for RELATIVE position when position type is ABSOLUTE and dimension is set.
This commit is contained in:
23
src/Layout.c
23
src/Layout.c
@@ -885,18 +885,18 @@ static void layoutNodeImpl(css_node_t *node, float parentMaxWidth, css_direction
|
|||||||
if (isMainDimDefined) {
|
if (isMainDimDefined) {
|
||||||
setTrailingPosition(node, child, mainAxis);
|
setTrailingPosition(node, child, mainAxis);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Now that we placed the element, we need to update the variables
|
// Now that we placed the element, we need to update the variables
|
||||||
// We only need to do that for relative elements. Absolute elements
|
// We only need to do that for relative elements. Absolute elements
|
||||||
// do not take part in that phase.
|
// do not take part in that phase.
|
||||||
if (child->style.position_type == CSS_POSITION_RELATIVE) {
|
if (child->style.position_type == CSS_POSITION_RELATIVE) {
|
||||||
// The main dimension is the sum of all the elements dimension plus
|
// The main dimension is the sum of all the elements dimension plus
|
||||||
// the spacing.
|
// the spacing.
|
||||||
mainDim += betweenMainDim + getDimWithMargin(child, mainAxis);
|
mainDim += betweenMainDim + getDimWithMargin(child, mainAxis);
|
||||||
// The cross dimension is the max of the elements dimension since there
|
// The cross dimension is the max of the elements dimension since there
|
||||||
// can only be one element in that cross dimension.
|
// can only be one element in that cross dimension.
|
||||||
crossDim = fmaxf(crossDim, boundAxis(child, crossAxis, getDimWithMargin(child, crossAxis)));
|
crossDim = fmaxf(crossDim, boundAxis(child, crossAxis, getDimWithMargin(child, crossAxis)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1110,6 +1110,7 @@ static void layoutNodeImpl(css_node_t *node, float parentMaxWidth, css_direction
|
|||||||
// the axis are defined (either both left and right or top and bottom).
|
// the axis are defined (either both left and right or top and bottom).
|
||||||
for (ii = 0; ii < 2; ii++) {
|
for (ii = 0; ii < 2; ii++) {
|
||||||
axis = (ii != 0) ? CSS_FLEX_DIRECTION_ROW : CSS_FLEX_DIRECTION_COLUMN;
|
axis = (ii != 0) ? CSS_FLEX_DIRECTION_ROW : CSS_FLEX_DIRECTION_COLUMN;
|
||||||
|
|
||||||
if (!isUndefined(node->layout.dimensions[dim[axis]]) &&
|
if (!isUndefined(node->layout.dimensions[dim[axis]]) &&
|
||||||
!isDimDefined(currentAbsoluteChild, axis) &&
|
!isDimDefined(currentAbsoluteChild, axis) &&
|
||||||
isPosDefined(currentAbsoluteChild, leading[axis]) &&
|
isPosDefined(currentAbsoluteChild, leading[axis]) &&
|
||||||
|
@@ -753,18 +753,18 @@ var computeLayout = (function() {
|
|||||||
if (isMainDimDefined) {
|
if (isMainDimDefined) {
|
||||||
setTrailingPosition(node, child, mainAxis);
|
setTrailingPosition(node, child, mainAxis);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Now that we placed the element, we need to update the variables
|
// Now that we placed the element, we need to update the variables
|
||||||
// We only need to do that for relative elements. Absolute elements
|
// We only need to do that for relative elements. Absolute elements
|
||||||
// do not take part in that phase.
|
// do not take part in that phase.
|
||||||
if (getPositionType(child) === CSS_POSITION_RELATIVE) {
|
if (getPositionType(child) === CSS_POSITION_RELATIVE) {
|
||||||
// The main dimension is the sum of all the elements dimension plus
|
// The main dimension is the sum of all the elements dimension plus
|
||||||
// the spacing.
|
// the spacing.
|
||||||
mainDim += betweenMainDim + getDimWithMargin(child, mainAxis);
|
mainDim += betweenMainDim + getDimWithMargin(child, mainAxis);
|
||||||
// The cross dimension is the max of the elements dimension since there
|
// The cross dimension is the max of the elements dimension since there
|
||||||
// can only be one element in that cross dimension.
|
// can only be one element in that cross dimension.
|
||||||
crossDim = fmaxf(crossDim, boundAxis(child, crossAxis, getDimWithMargin(child, crossAxis)));
|
crossDim = fmaxf(crossDim, boundAxis(child, crossAxis, getDimWithMargin(child, crossAxis)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -978,6 +978,7 @@ var computeLayout = (function() {
|
|||||||
// the axis are defined (either both left and right or top and bottom).
|
// the axis are defined (either both left and right or top and bottom).
|
||||||
for (ii = 0; ii < 2; ii++) {
|
for (ii = 0; ii < 2; ii++) {
|
||||||
axis = (ii !== 0) ? CSS_FLEX_DIRECTION_ROW : CSS_FLEX_DIRECTION_COLUMN;
|
axis = (ii !== 0) ? CSS_FLEX_DIRECTION_ROW : CSS_FLEX_DIRECTION_COLUMN;
|
||||||
|
|
||||||
if (!isUndefined(node.layout[dim[axis]]) &&
|
if (!isUndefined(node.layout[dim[axis]]) &&
|
||||||
!isDimDefined(currentAbsoluteChild, axis) &&
|
!isDimDefined(currentAbsoluteChild, axis) &&
|
||||||
isPosDefined(currentAbsoluteChild, leading[axis]) &&
|
isPosDefined(currentAbsoluteChild, leading[axis]) &&
|
||||||
|
@@ -702,18 +702,18 @@ public class LayoutEngine {
|
|||||||
if (isMainDimDefined) {
|
if (isMainDimDefined) {
|
||||||
setTrailingPosition(node, child, mainAxis);
|
setTrailingPosition(node, child, mainAxis);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Now that we placed the element, we need to update the variables
|
// Now that we placed the element, we need to update the variables
|
||||||
// We only need to do that for relative elements. Absolute elements
|
// We only need to do that for relative elements. Absolute elements
|
||||||
// do not take part in that phase.
|
// do not take part in that phase.
|
||||||
if (child.style.positionType == CSSPositionType.RELATIVE) {
|
if (child.style.positionType == CSSPositionType.RELATIVE) {
|
||||||
// The main dimension is the sum of all the elements dimension plus
|
// The main dimension is the sum of all the elements dimension plus
|
||||||
// the spacing.
|
// the spacing.
|
||||||
mainDim += betweenMainDim + getDimWithMargin(child, mainAxis);
|
mainDim += betweenMainDim + getDimWithMargin(child, mainAxis);
|
||||||
// The cross dimension is the max of the elements dimension since there
|
// The cross dimension is the max of the elements dimension since there
|
||||||
// can only be one element in that cross dimension.
|
// can only be one element in that cross dimension.
|
||||||
crossDim = Math.max(crossDim, boundAxis(child, crossAxis, getDimWithMargin(child, crossAxis)));
|
crossDim = Math.max(crossDim, boundAxis(child, crossAxis, getDimWithMargin(child, crossAxis)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -927,6 +927,7 @@ public class LayoutEngine {
|
|||||||
// the axis are defined (either both left and right or top and bottom).
|
// the axis are defined (either both left and right or top and bottom).
|
||||||
for (ii = 0; ii < 2; ii++) {
|
for (ii = 0; ii < 2; ii++) {
|
||||||
axis = (ii != 0) ? CSS_FLEX_DIRECTION_ROW : CSS_FLEX_DIRECTION_COLUMN;
|
axis = (ii != 0) ? CSS_FLEX_DIRECTION_ROW : CSS_FLEX_DIRECTION_COLUMN;
|
||||||
|
|
||||||
if (!isUndefined(node.layout.dimensions[dim[axis]]) &&
|
if (!isUndefined(node.layout.dimensions[dim[axis]]) &&
|
||||||
!isDimDefined(currentAbsoluteChild, axis) &&
|
!isDimDefined(currentAbsoluteChild, axis) &&
|
||||||
isPosDefined(currentAbsoluteChild, leading[axis]) &&
|
isPosDefined(currentAbsoluteChild, leading[axis]) &&
|
||||||
|
Reference in New Issue
Block a user