Commit 89e80fc1 authored by cbiesinger's avatar cbiesinger Committed by Commit bot

[css-flexbox] Simplify code a bit

No need for these additions/subtractions of border and padding.

R=eae@chromium.org,dgrogan@chromium.org
BUG=470729

Review-Url: https://codereview.chromium.org/2156323002
Cr-Commit-Position: refs/heads/master@{#406151}
parent bb9dab02
......@@ -498,6 +498,11 @@ LayoutUnit LayoutFlexibleBox::mainAxisExtentForChild(const LayoutBox& child) con
return isHorizontalFlow() ? child.size().width() : child.size().height();
}
LayoutUnit LayoutFlexibleBox::mainAxisContentExtentForChild(const LayoutBox& child) const
{
return isHorizontalFlow() ? child.contentWidth() : child.contentHeight();
}
LayoutUnit LayoutFlexibleBox::crossAxisExtent() const
{
return isHorizontalFlow() ? size().height() : size().width();
......@@ -1409,12 +1414,12 @@ static LayoutUnit alignmentOffset(LayoutUnit availableFreeSpace, ItemPosition po
return LayoutUnit();
}
void LayoutFlexibleBox::setOverrideMainAxisSizeForChild(LayoutBox& child, LayoutUnit childPreferredSize)
void LayoutFlexibleBox::setOverrideMainAxisContentSizeForChild(LayoutBox& child, LayoutUnit childPreferredSize)
{
if (hasOrthogonalFlow(child))
child.setOverrideLogicalContentHeight(childPreferredSize - child.borderAndPaddingLogicalHeight());
child.setOverrideLogicalContentHeight(childPreferredSize);
else
child.setOverrideLogicalContentWidth(childPreferredSize - child.borderAndPaddingLogicalWidth());
child.setOverrideLogicalContentWidth(childPreferredSize);
}
LayoutUnit LayoutFlexibleBox::staticMainAxisPositionForPositionedChild(const LayoutBox& child)
......@@ -1611,9 +1616,8 @@ void LayoutFlexibleBox::layoutAndPlaceChildren(LayoutUnit& crossAxisOffset, cons
child->setMayNeedPaintInvalidation();
LayoutUnit childPreferredSize = flexItem.flexedContentSize + mainAxisBorderAndPaddingExtentForChild(*child);
setOverrideMainAxisSizeForChild(*child, childPreferredSize);
if (childPreferredSize != mainAxisExtentForChild(*child)) {
setOverrideMainAxisContentSizeForChild(*child, flexItem.flexedContentSize);
if (flexItem.flexedContentSize != mainAxisContentExtentForChild(*child)) {
child->setChildNeedsLayout(MarkOnlyThis);
} else {
// To avoid double applying margin changes in updateAutoMarginsInCrossAxis, we reset the margins here.
......
......@@ -120,6 +120,7 @@ private:
LayoutUnit childIntrinsicHeight(const LayoutBox& child) const;
LayoutUnit childIntrinsicWidth(const LayoutBox& child) const;
LayoutUnit mainAxisExtentForChild(const LayoutBox& child) const;
LayoutUnit mainAxisContentExtentForChild(const LayoutBox& child) const;
LayoutUnit crossAxisExtent() const;
LayoutUnit mainAxisExtent() const;
LayoutUnit crossAxisContentExtent() const;
......@@ -181,7 +182,7 @@ private:
void freezeViolations(Vector<FlexItem*>&, LayoutUnit& availableFreeSpace, double& totalFlexGrow, double& totalFlexShrink, double& totalWeightedFlexShrink);
void resetAutoMarginsAndLogicalTopInCrossAxis(LayoutBox& child);
void setOverrideMainAxisSizeForChild(LayoutBox& child, LayoutUnit childPreferredSize);
void setOverrideMainAxisContentSizeForChild(LayoutBox& child, LayoutUnit childPreferredSize);
void prepareChildForPositionedLayout(LayoutBox& child);
size_t numberOfInFlowPositionedChildren(const OrderedFlexItemList&) const;
void layoutAndPlaceChildren(LayoutUnit& crossAxisOffset, const OrderedFlexItemList&, LayoutUnit availableFreeSpace, bool relayoutChildren, SubtreeLayoutScope&, Vector<LineContext>&);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment