Changeset 209068 in webkit
- Timestamp:
- Nov 29, 2016 8:04:41 AM (7 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r209065 r209068 1 2016-11-29 Zalan Bujtas <zalan@apple.com> 2 3 Safari (WebKit) doesn't wrap element within flex when width comes below min-width 4 https://bugs.webkit.org/show_bug.cgi?id=136041 5 <rdar://problem/25569370> 6 7 Reviewed by Darin Adler. 8 9 * fast/flexbox/flex-wrap-when-min-widht-is-set-1-expected.html: Added. 10 * fast/flexbox/flex-wrap-when-min-widht-is-set-1.html: Added. 11 * fast/flexbox/flex-wrap-when-min-widht-is-set-2-expected.html: Added. 12 * fast/flexbox/flex-wrap-when-min-widht-is-set-2.html: Added. 13 1 14 2016-11-28 Antti Koivisto <antti@apple.com> 2 15 -
trunk/Source/WebCore/ChangeLog
r209066 r209068 1 2016-11-29 Zalan Bujtas <zalan@apple.com> 2 3 Safari (WebKit) doesn't wrap element within flex when width comes below min-width 4 https://bugs.webkit.org/show_bug.cgi?id=136041 5 <rdar://problem/25569370> 6 7 Reviewed by Darin Adler. 8 9 While figuring out whether a particular flex item fits the current line, we need to take 10 the min-width into account too. This matches both FF and Chrome behaviour. 11 12 Tests: fast/flexbox/flex-wrap-when-min-widht-is-set-1.html 13 fast/flexbox/flex-wrap-when-min-widht-is-set-2.html 14 15 * rendering/RenderFlexibleBox.cpp: 16 (WebCore::RenderFlexibleBox::computeNextFlexLine): 17 1 18 2016-11-29 Antti Koivisto <antti@apple.com> 2 19 -
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
r208985 r209068 984 984 bool lineHasInFlowItem = false; 985 985 986 LayoutUnit preferredMainAxisExtentWithMinWidthConstraint; 986 987 for (RenderBox* child = m_orderIterator.currentChild(); child; child = m_orderIterator.next()) { 987 988 if (child->isOutOfFlowPositioned()) { … … 991 992 992 993 LayoutUnit childMainAxisExtent = preferredMainAxisContentExtentForChild(*child, hasInfiniteLineLength); 993 LayoutUnit childMainAxisMarginBoxExtent = mainAxisBorderAndPaddingExtentForChild(*child) + childMainAxisExtent; 994 childMainAxisMarginBoxExtent += isHorizontalFlow() ? child->horizontalMarginExtent() : child->verticalMarginExtent(); 995 996 if (isMultiline() && preferredMainAxisExtent + childMainAxisMarginBoxExtent > lineBreakLength && lineHasInFlowItem) 994 LayoutUnit borderMarginAndPaddingSpace = mainAxisBorderAndPaddingExtentForChild(*child) + (isHorizontalFlow() ? child->horizontalMarginExtent() : child->verticalMarginExtent()); 995 996 LayoutUnit childMainAxisExtentWithMinWidthConstraint = childMainAxisExtent; 997 if (child->style().logicalMinWidth().isSpecifiedOrIntrinsic()) { 998 if (auto minWidthForChild = computeMainAxisExtentForChild(*child, MinSize, child->style().logicalMinWidth())) 999 childMainAxisExtentWithMinWidthConstraint = std::max(childMainAxisExtent, minWidthForChild.value()); 1000 } 1001 preferredMainAxisExtentWithMinWidthConstraint += childMainAxisExtentWithMinWidthConstraint + borderMarginAndPaddingSpace; 1002 1003 if (isMultiline() && preferredMainAxisExtentWithMinWidthConstraint > lineBreakLength && lineHasInFlowItem) 997 1004 break; 998 1005 orderedChildren.append(child); 999 1006 lineHasInFlowItem = true; 1000 preferredMainAxisExtent += childMainAxisMarginBoxExtent; 1007 1008 preferredMainAxisExtent += childMainAxisExtent + borderMarginAndPaddingSpace; 1001 1009 totalFlexGrow += child->style().flexGrow(); 1002 1010 totalWeightedFlexShrink += child->style().flexShrink() * childMainAxisExtent; 1003 1011 1004 1012 LayoutUnit childMinMaxAppliedMainAxisExtent = adjustChildSizeForMinAndMax(*child, childMainAxisExtent); 1005 minMaxAppliedMainAxisExtent += childMinMaxAppliedMainAxisExtent - childMainAxisExtent + childMainAxisMarginBoxExtent;1013 minMaxAppliedMainAxisExtent += childMinMaxAppliedMainAxisExtent + borderMarginAndPaddingSpace; 1006 1014 } 1007 1015 return true;
Note: See TracChangeset
for help on using the changeset viewer.