Changeset 222441 in webkit
- Timestamp:
- Sep 25, 2017 1:39:48 AM (7 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r222440 r222441 1 2017-09-25 Manuel Rego Casasnovas <rego@igalia.com> 2 3 [css-grid] Small refactoring adding RenderGrid::contentAlignment() 4 https://bugs.webkit.org/show_bug.cgi?id=177130 5 6 Reviewed by Sergio Villar Senin. 7 8 As a follow-up of r221931, this patch does a small refactoring 9 adding a new method RenderGrid::contentAlignment() 10 that is used from RenderGrid and GridTrackSizingAlgorithm. 11 12 No new tests, no change of behavior. 13 14 * rendering/GridTrackSizingAlgorithm.cpp: 15 (WebCore::GridTrackSizingAlgorithm::stretchAutoTracks): 16 * rendering/RenderGrid.cpp: 17 (WebCore::contentAlignmentNormalBehaviorGrid): 18 (WebCore::RenderGrid::contentAlignment const): 19 (WebCore::RenderGrid::computeContentPositionAndDistributionOffset const): 20 (WebCore::RenderGrid::contentAlignmentNormalBehaviorGrid): Deleted. 21 * rendering/RenderGrid.h: 22 * rendering/style/RenderStyle.cpp: 23 (WebCore::resolvedContentAlignment): 24 (WebCore::RenderStyle::resolvedAlignContent const): 25 (WebCore::RenderStyle::resolvedJustifyContent const): 26 * rendering/style/RenderStyle.h: 27 1 28 2017-09-25 Manuel Rego Casasnovas <rego@igalia.com> 2 29 -
trunk/Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp
r222440 r222441 1072 1072 void GridTrackSizingAlgorithm::stretchAutoTracks() 1073 1073 { 1074 if (m_autoSizedTracksForStretchIndex.isEmpty())1075 return;1076 1077 1074 auto currentFreeSpace = freeSpace(m_direction); 1078 if (!currentFreeSpace 1075 if (m_autoSizedTracksForStretchIndex.isEmpty() 1076 || !currentFreeSpace 1079 1077 || currentFreeSpace.value() <= 0 1080 || (m_direction == ForColumns && m_renderGrid->style().resolvedJustifyContentDistribution(m_renderGrid->contentAlignmentNormalBehaviorGrid()) != ContentDistributionStretch) 1081 || (m_direction == ForRows && m_renderGrid->style().resolvedAlignContentDistribution(m_renderGrid->contentAlignmentNormalBehaviorGrid()) != ContentDistributionStretch)) 1078 || (m_renderGrid->contentAlignment(m_direction).distribution() != ContentDistributionStretch)) 1082 1079 return; 1083 1080 -
trunk/Source/WebCore/rendering/RenderGrid.cpp
r221931 r222441 878 878 } 879 879 880 const StyleContentAlignmentData& RenderGrid::contentAlignmentNormalBehaviorGrid()880 static const StyleContentAlignmentData& contentAlignmentNormalBehaviorGrid() 881 881 { 882 882 static const StyleContentAlignmentData normalBehavior = {ContentPositionNormal, ContentDistributionStretch}; … … 1582 1582 } 1583 1583 1584 StyleContentAlignmentData RenderGrid::contentAlignment(GridTrackSizingDirection direction) const 1585 { 1586 return direction == ForColumns ? style().resolvedJustifyContent(contentAlignmentNormalBehaviorGrid()) : style().resolvedAlignContent(contentAlignmentNormalBehaviorGrid()); 1587 } 1588 1584 1589 ContentAlignmentData RenderGrid::computeContentPositionAndDistributionOffset(GridTrackSizingDirection direction, const LayoutUnit& availableFreeSpace, unsigned numberOfGridTracks) const 1585 1590 { 1586 1591 bool isRowAxis = direction == ForColumns; 1587 auto position = isRowAxis ? style().resolvedJustifyContentPosition(contentAlignmentNormalBehaviorGrid()) : style().resolvedAlignContentPosition(contentAlignmentNormalBehaviorGrid());1588 auto distribution = isRowAxis ? style().resolvedJustifyContentDistribution(contentAlignmentNormalBehaviorGrid()) : style().resolvedAlignContentDistribution(contentAlignmentNormalBehaviorGrid());1592 auto contentAlignmentData = contentAlignment(direction); 1593 auto position = contentAlignmentData.position(); 1589 1594 // If <content-distribution> value can't be applied, 'position' will become the associated 1590 1595 // <content-position> fallback value. 1591 auto contentAlignment = contentDistributionOffset(availableFreeSpace, position, distribution, numberOfGridTracks);1596 auto contentAlignment = contentDistributionOffset(availableFreeSpace, position, contentAlignmentData.distribution(), numberOfGridTracks); 1592 1597 if (contentAlignment.isValid()) 1593 1598 return contentAlignment; 1594 1599 1595 auto overflow = (isRowAxis ? style().justifyContent() : style().alignContent()).overflow(); 1596 if (availableFreeSpace <= 0 && overflow == OverflowAlignmentSafe) 1600 if (availableFreeSpace <= 0 && contentAlignmentData.overflow() == OverflowAlignmentSafe) 1597 1601 return {0, 0}; 1598 1602 -
trunk/Source/WebCore/rendering/RenderGrid.h
r221931 r222441 66 66 LayoutUnit guttersSize(const Grid&, GridTrackSizingDirection, unsigned startLine, unsigned span, std::optional<LayoutUnit> availableSize) const; 67 67 68 static const StyleContentAlignmentData& contentAlignmentNormalBehaviorGrid();68 StyleContentAlignmentData contentAlignment(GridTrackSizingDirection) const; 69 69 70 70 protected: -
trunk/Source/WebCore/rendering/style/RenderStyle.cpp
r222435 r222441 279 279 return resolvedSelfAlignment(justifySelf(), normalValueBehaviour); 280 280 return parentStyle->resolvedJustifyItems(normalValueBehaviour); 281 } 282 283 static inline StyleContentAlignmentData resolvedContentAlignment(const StyleContentAlignmentData& value, const StyleContentAlignmentData& normalValueBehavior) 284 { 285 return (value.position() == ContentPositionNormal && value.distribution() == ContentDistributionDefault) ? normalValueBehavior : value; 286 } 287 288 StyleContentAlignmentData RenderStyle::resolvedAlignContent(const StyleContentAlignmentData& normalValueBehavior) const 289 { 290 // We will return the behaviour of 'normal' value if needed, which is specific of each layout model. 291 return resolvedContentAlignment(alignContent(), normalValueBehavior); 292 } 293 294 StyleContentAlignmentData RenderStyle::resolvedJustifyContent(const StyleContentAlignmentData& normalValueBehavior) const 295 { 296 // We will return the behaviour of 'normal' value if needed, which is specific of each layout model. 297 return resolvedContentAlignment(justifyContent(), normalValueBehavior); 281 298 } 282 299 -
trunk/Source/WebCore/rendering/style/RenderStyle.h
r222435 r222441 167 167 StyleSelfAlignmentData resolvedAlignItems(ItemPosition normalValueBehaviour) const; 168 168 StyleSelfAlignmentData resolvedAlignSelf(const RenderStyle* parentStyle, ItemPosition normalValueBehaviour) const; 169 StyleContentAlignmentData resolvedAlignContent(const StyleContentAlignmentData& normalValueBehaviour) const; 169 170 StyleSelfAlignmentData resolvedJustifyItems(ItemPosition normalValueBehaviour) const; 170 171 StyleSelfAlignmentData resolvedJustifySelf(const RenderStyle* parentStyle, ItemPosition normalValueBehaviour) const; 172 StyleContentAlignmentData resolvedJustifyContent(const StyleContentAlignmentData& normalValueBehaviour) const; 171 173 172 174 PseudoId styleType() const { return static_cast<PseudoId>(m_nonInheritedFlags.styleType); }
Note: See TracChangeset
for help on using the changeset viewer.