isDimDefined helper
This commit is contained in:
@@ -276,6 +276,10 @@ float getDimWithMargin(css_node_t *node, css_flex_direction_t axis) {
|
|||||||
getMargin(node, trailing[axis]);
|
getMargin(node, trailing[axis]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool isDimDefined(css_node_t *node, css_flex_direction_t axis) {
|
||||||
|
return !isUndefined(node->style.dimensions[dim[axis]]);
|
||||||
|
}
|
||||||
|
|
||||||
float getPosition(css_node_t *node, css_position_t pos) {
|
float getPosition(css_node_t *node, css_position_t pos) {
|
||||||
float result = node->style.position[pos];
|
float result = node->style.position[pos];
|
||||||
if (!isUndefined(result)) {
|
if (!isUndefined(result)) {
|
||||||
@@ -294,19 +298,18 @@ float getRelativePosition(css_node_t *node, css_flex_direction_t axis) {
|
|||||||
return getPosition(node, trailing[axis]);
|
return getPosition(node, trailing[axis]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void layoutNode(css_node_t *node) {
|
void layoutNode(css_node_t *node) {
|
||||||
css_flex_direction_t mainAxis = getFlexDirection(node);
|
css_flex_direction_t mainAxis = getFlexDirection(node);
|
||||||
css_flex_direction_t crossAxis = mainAxis == CSS_FLEX_DIRECTION_ROW ?
|
css_flex_direction_t crossAxis = mainAxis == CSS_FLEX_DIRECTION_ROW ?
|
||||||
CSS_FLEX_DIRECTION_COLUMN :
|
CSS_FLEX_DIRECTION_COLUMN :
|
||||||
CSS_FLEX_DIRECTION_ROW;
|
CSS_FLEX_DIRECTION_ROW;
|
||||||
|
|
||||||
bool mainDimInStyle = !isUndefined(node->style.dimensions[dim[mainAxis]]);
|
bool mainDimInStyle = isDimDefined(node, mainAxis);
|
||||||
if (isUndefined(node->layout.dimensions[dim[mainAxis]]) && mainDimInStyle) {
|
if (isUndefined(node->layout.dimensions[dim[mainAxis]]) && mainDimInStyle) {
|
||||||
node->layout.dimensions[dim[mainAxis]] = node->style.dimensions[dim[mainAxis]];
|
node->layout.dimensions[dim[mainAxis]] = node->style.dimensions[dim[mainAxis]];
|
||||||
}
|
}
|
||||||
|
|
||||||
bool crossDimInStyle = !isUndefined(node->style.dimensions[dim[crossAxis]]);
|
bool crossDimInStyle = isDimDefined(node, crossAxis);
|
||||||
if (isUndefined(node->layout.dimensions[dim[crossAxis]]) && crossDimInStyle) {
|
if (isUndefined(node->layout.dimensions[dim[crossAxis]]) && crossDimInStyle) {
|
||||||
node->layout.dimensions[dim[crossAxis]] = node->style.dimensions[dim[crossAxis]];
|
node->layout.dimensions[dim[crossAxis]] = node->style.dimensions[dim[crossAxis]];
|
||||||
}
|
}
|
||||||
|
@@ -88,6 +88,11 @@ function computeLayout(node) {
|
|||||||
getMargin(node, trailing[axis]);
|
getMargin(node, trailing[axis]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isDimDefined(node, axis) {
|
||||||
|
return !isUndefined(node.style[dim[axis]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function getPosition(node, pos) {
|
function getPosition(node, pos) {
|
||||||
if (pos in node.style) {
|
if (pos in node.style) {
|
||||||
return node.style[pos];
|
return node.style[pos];
|
||||||
@@ -141,12 +146,12 @@ function computeLayout(node) {
|
|||||||
CSS_FLEX_DIRECTION_COLUMN :
|
CSS_FLEX_DIRECTION_COLUMN :
|
||||||
CSS_FLEX_DIRECTION_ROW;
|
CSS_FLEX_DIRECTION_ROW;
|
||||||
|
|
||||||
var mainDimInStyle = dim[mainAxis] in node.style;
|
var mainDimInStyle = isDimDefined(node, mainAxis);
|
||||||
if (isUndefined(node.layout[dim[mainAxis]]) && mainDimInStyle) {
|
if (isUndefined(node.layout[dim[mainAxis]]) && mainDimInStyle) {
|
||||||
node.layout[dim[mainAxis]] = node.style[dim[mainAxis]];
|
node.layout[dim[mainAxis]] = node.style[dim[mainAxis]];
|
||||||
}
|
}
|
||||||
|
|
||||||
var crossDimInStyle = dim[crossAxis] in node.style;
|
var crossDimInStyle = isDimDefined(node, crossAxis);
|
||||||
if (isUndefined(node.layout[dim[crossAxis]]) && crossDimInStyle) {
|
if (isUndefined(node.layout[dim[crossAxis]]) && crossDimInStyle) {
|
||||||
node.layout[dim[crossAxis]] = node.style[dim[crossAxis]];
|
node.layout[dim[crossAxis]] = node.style[dim[crossAxis]];
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user