initial position: absolute; right: 5;
This commit is contained in:
@@ -467,15 +467,26 @@ var computeLayout = (function() {
|
|||||||
for (var/*int*/ i = 0; i < node.children.length; ++i) {
|
for (var/*int*/ i = 0; i < node.children.length; ++i) {
|
||||||
var/*css_node_t**/ child = node.children[i];
|
var/*css_node_t**/ child = node.children[i];
|
||||||
|
|
||||||
|
var/*bool*/ leadingPos = isPosDefined(child, leading[crossAxis]);
|
||||||
|
var/*bool*/ trailingPos = isPosDefined(child, trailing[crossAxis]);
|
||||||
|
|
||||||
if (getPositionType(child) === CSS_POSITION_ABSOLUTE &&
|
if (getPositionType(child) === CSS_POSITION_ABSOLUTE &&
|
||||||
isPosDefined(child, leading[crossAxis])) {
|
(leadingPos || trailingPos)) {
|
||||||
// In case the child is absolutely positionned and has a
|
// In case the child is absolutely positionned and has a
|
||||||
// top/left/bottom/right being set, we override all the previously
|
// top/left/bottom/right being set, we override all the previously
|
||||||
// computed positions to set it correctly.
|
// computed positions to set it correctly.
|
||||||
child.layout[pos[crossAxis]] = getPosition(child, leading[crossAxis]) +
|
if (leadingPos && !trailingPos) {
|
||||||
getBorder(node, leading[crossAxis]) +
|
child.layout[pos[crossAxis]] =
|
||||||
getMargin(child, leading[crossAxis]);
|
getPosition(child, leading[crossAxis]) +
|
||||||
|
getBorder(node, leading[crossAxis]) +
|
||||||
|
getMargin(child, leading[crossAxis]);
|
||||||
|
}
|
||||||
|
if (!leadingPos && trailingPos) {
|
||||||
|
child.layout[pos[crossAxis]] =
|
||||||
|
node.layout[dim[crossAxis]] -
|
||||||
|
getDimWithMargin(child, crossAxis) -
|
||||||
|
getPosition(child, trailing[crossAxis]);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
var/*float*/ leadingCrossDim = getPaddingAndBorder(node, leading[crossAxis]);
|
var/*float*/ leadingCrossDim = getPaddingAndBorder(node, leading[crossAxis]);
|
||||||
|
|
||||||
|
@@ -906,6 +906,17 @@ describe('Layout', function() {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should layout with position absolute right', function() {
|
||||||
|
testLayout(
|
||||||
|
{style: {}, children: [
|
||||||
|
{style: {right: 5, borderWidth: 5, position: 'absolute'}}
|
||||||
|
]},
|
||||||
|
{width: 0, height: 0, top: 0, left: 0, children: [
|
||||||
|
{width: 10, height: 10, top: 0, left: -15}
|
||||||
|
]}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
xit('should layout text with alignItems: stretch', function() {
|
xit('should layout text with alignItems: stretch', function() {
|
||||||
testLayout(
|
testLayout(
|
||||||
{style: {width: 80, padding: 7, alignItems: 'stretch', measure: text('loooooooooong with space')}},
|
{style: {width: 80, padding: 7, alignItems: 'stretch', measure: text('loooooooooong with space')}},
|
||||||
@@ -937,9 +948,6 @@ describe('Layout', function() {
|
|||||||
var rng = new RNG(0);
|
var rng = new RNG(0);
|
||||||
function randMinMax(node, chance, attribute, min, max) {
|
function randMinMax(node, chance, attribute, min, max) {
|
||||||
if (rng.nextFloat() < chance) {
|
if (rng.nextFloat() < chance) {
|
||||||
if (attribute === 'right' || attribute === 'bottom') {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
node.style[attribute] = Math.floor(rng.nextFloat() * (max - min)) + min;
|
node.style[attribute] = Math.floor(rng.nextFloat() * (max - min)) + min;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user