Changeset 105694 in webkit
- Timestamp:
- Jan 23, 2012 10:26:54 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r105691 r105694 1 2012-01-23 Ojan Vafai <ojan@chromium.org> 2 3 Implement flex-pack:distribute 4 https://bugs.webkit.org/show_bug.cgi?id=76864 5 6 Reviewed by Tony Chang. 7 8 * css3/flexbox/004-expected.txt: 9 * css3/flexbox/004.html: 10 1 11 2012-01-23 Tom Sepez <tsepez@chromium.org> 2 12 -
trunk/LayoutTests/css3/flexbox/004-expected.txt
r96851 r105694 6 6 PASS 7 7 PASS 8 PASS 9 PASS 10 PASS -
trunk/LayoutTests/css3/flexbox/004.html
r96776 r105694 61 61 </div> 62 62 63 <div class="flexbox" style="-webkit-flex-pack: distribute"> 64 <div data-expected-width="100" data-offset-x="50" style="width: -webkit-flex(1 0 0); max-width: 100px;"></div> 65 <div data-expected-width="100" data-offset-x="250" style="width: 100px;"></div> 66 <div data-expected-width="100" data-offset-x="450" style="width: 100px;"></div> 67 </div> 68 69 <!-- If there's only one child, we pack center. --> 70 <div class="flexbox" style="-webkit-flex-pack: distribute"> 71 <div data-expected-width="100" data-offset-x="250" style="width: -webkit-flex(1 0 0); max-width: 100px;"></div> 72 </div> 73 74 <!-- Make sure we don't crash with no children. --> 75 <div class="flexbox" style="-webkit-flex-pack: distribute"></div> 76 63 77 <!-- margin:auto does nothing here. --> 64 78 <div class="flexbox" style="-webkit-flex-pack: end"> -
trunk/Source/WebCore/ChangeLog
r105693 r105694 1 2012-01-23 Ojan Vafai <ojan@chromium.org> 2 3 Implement flex-pack:distribute 4 https://bugs.webkit.org/show_bug.cgi?id=76864 5 6 Reviewed by Tony Chang. 7 8 See http://dev.w3.org/csswg/css3-flexbox/#flex-pack. 9 10 * css/CSSParser.cpp: 11 (WebCore::CSSParser::parseValue): 12 * css/CSSPrimitiveValueMappings.h: 13 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): 14 (WebCore::CSSPrimitiveValue::operator EFlexPack): 15 * css/CSSValueKeywords.in: 16 * rendering/RenderFlexibleBox.cpp: 17 (WebCore::initialPackingOffset): 18 (WebCore::packingSpaceBetweenChildren): 19 (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): 20 (WebCore::RenderFlexibleBox::layoutColumnReverse): 21 * rendering/style/RenderStyleConstants.h: 22 * rendering/style/StyleFlexibleBoxData.h: 23 1 24 2012-01-23 Luke Macpherson <macpherson@chromium.org> 2 25 -
trunk/Source/WebCore/css/CSSParser.cpp
r105576 r105694 1637 1637 break; 1638 1638 case CSSPropertyWebkitFlexPack: 1639 validPrimitive = id == CSSValueStart || id == CSSValueEnd || id == CSSValueCenter || id == CSSValueJustify ;1639 validPrimitive = id == CSSValueStart || id == CSSValueEnd || id == CSSValueCenter || id == CSSValueJustify || id == CSSValueDistribute; 1640 1640 break; 1641 1641 case CSSPropertyWebkitFlexAlign: -
trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h
r105693 r105694 1219 1219 m_value.ident = CSSValueJustify; 1220 1220 break; 1221 case PackDistribute: 1222 m_value.ident = CSSValueDistribute; 1223 break; 1221 1224 } 1222 1225 } … … 1233 1236 case CSSValueJustify: 1234 1237 return PackJustify; 1238 case CSSValueDistribute: 1239 return PackDistribute; 1235 1240 default: 1236 1241 ASSERT_NOT_REACHED(); -
trunk/Source/WebCore/css/CSSValueKeywords.in
r105429 r105694 493 493 // stretch 494 494 495 // CSS_PROP_FLEX_PACK 496 // start 497 // end 498 // center 499 // justify 500 distribute 501 495 502 // CSS_PROP_FLEX_FLOW 496 503 row -
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
r105015 r105694 574 574 } 575 575 576 static LayoutUnit initialPackingOffset(LayoutUnit availableFreeSpace, float totalPositiveFlexibility, EFlexPack flexPack )576 static LayoutUnit initialPackingOffset(LayoutUnit availableFreeSpace, float totalPositiveFlexibility, EFlexPack flexPack, size_t numberOfChildren) 577 577 { 578 578 if (hasPackingSpace(availableFreeSpace, totalPositiveFlexibility)) { … … 581 581 if (flexPack == PackCenter) 582 582 return availableFreeSpace / 2; 583 if (flexPack == PackDistribute && numberOfChildren) 584 return availableFreeSpace / (2 * numberOfChildren); 583 585 } 584 586 return 0; … … 587 589 static LayoutUnit packingSpaceBetweenChildren(LayoutUnit availableFreeSpace, float totalPositiveFlexibility, EFlexPack flexPack, size_t numberOfChildren) 588 590 { 589 if (hasPackingSpace(availableFreeSpace, totalPositiveFlexibility) && flexPack == PackJustify && numberOfChildren > 1) 590 return availableFreeSpace / (numberOfChildren - 1); 591 if (hasPackingSpace(availableFreeSpace, totalPositiveFlexibility) && numberOfChildren > 1) { 592 if (flexPack == PackJustify) 593 return availableFreeSpace / (numberOfChildren - 1); 594 if (flexPack == PackDistribute) 595 return availableFreeSpace / numberOfChildren; 596 } 591 597 return 0; 592 598 } … … 630 636 { 631 637 LayoutUnit mainAxisOffset = flowAwareBorderStart() + flowAwarePaddingStart(); 632 mainAxisOffset += initialPackingOffset(availableFreeSpace, totalPositiveFlexibility, style()->flexPack() );638 mainAxisOffset += initialPackingOffset(availableFreeSpace, totalPositiveFlexibility, style()->flexPack(), childSizes.size()); 633 639 634 640 LayoutUnit crossAxisOffset = flowAwareBorderBefore() + flowAwarePaddingBefore(); … … 693 699 // just moving the children to a new position. 694 700 LayoutUnit mainAxisOffset = logicalHeight() - flowAwareBorderEnd() - flowAwarePaddingEnd(); 695 mainAxisOffset -= initialPackingOffset(availableFreeSpace, totalPositiveFlexibility, style()->flexPack() );701 mainAxisOffset -= initialPackingOffset(availableFreeSpace, totalPositiveFlexibility, style()->flexPack(), childSizes.size()); 696 702 697 703 LayoutUnit crossAxisOffset = flowAwareBorderBefore() + flowAwarePaddingBefore(); -
trunk/Source/WebCore/rendering/style/RenderStyleConstants.h
r105429 r105694 177 177 // CSS3 Flexbox Properties 178 178 179 enum EFlexPack { PackStart, PackEnd, PackCenter, PackJustify };179 enum EFlexPack { PackStart, PackEnd, PackCenter, PackJustify, PackDistribute }; 180 180 enum EFlexAlign { AlignAuto, AlignStart, AlignEnd, AlignCenter, AlignStretch, AlignBaseline }; 181 181 enum EFlexDirection { FlowRow, FlowRowReverse, FlowColumn, FlowColumnReverse }; -
trunk/Source/WebCore/rendering/style/StyleFlexibleBoxData.h
r105015 r105694 50 50 int m_flexOrder; 51 51 52 unsigned m_flexPack : 2; // EFlexPack52 unsigned m_flexPack : 3; // EFlexPack 53 53 unsigned m_flexAlign : 3; // EFlexAlign 54 54 unsigned m_flexItemAlign : 3; // EFlexAlign
Note: See TracChangeset
for help on using the changeset viewer.