Changeset 222441 in webkit


Ignore:
Timestamp:
Sep 25, 2017 1:39:48 AM (7 years ago)
Author:
Manuel Rego Casasnovas
Message:

[css-grid] Small refactoring adding RenderGrid::contentAlignment()
https://bugs.webkit.org/show_bug.cgi?id=177130

Reviewed by Sergio Villar Senin.

As a follow-up of r221931, this patch does a small refactoring
adding a new method RenderGrid::contentAlignment()
that is used from RenderGrid and GridTrackSizingAlgorithm.

No new tests, no change of behavior.

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::stretchAutoTracks):

  • rendering/RenderGrid.cpp:

(WebCore::contentAlignmentNormalBehaviorGrid):
(WebCore::RenderGrid::contentAlignment const):
(WebCore::RenderGrid::computeContentPositionAndDistributionOffset const):
(WebCore::RenderGrid::contentAlignmentNormalBehaviorGrid): Deleted.

  • rendering/RenderGrid.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::resolvedContentAlignment):
(WebCore::RenderStyle::resolvedAlignContent const):
(WebCore::RenderStyle::resolvedJustifyContent const):

  • rendering/style/RenderStyle.h:
Location:
trunk/Source/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r222440 r222441  
     12017-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
    1282017-09-25  Manuel Rego Casasnovas  <rego@igalia.com>
    229
  • trunk/Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp

    r222440 r222441  
    10721072void GridTrackSizingAlgorithm::stretchAutoTracks()
    10731073{
    1074     if (m_autoSizedTracksForStretchIndex.isEmpty())
    1075         return;
    1076 
    10771074    auto currentFreeSpace = freeSpace(m_direction);
    1078     if (!currentFreeSpace
     1075    if (m_autoSizedTracksForStretchIndex.isEmpty()
     1076        || !currentFreeSpace
    10791077        || 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))
    10821079        return;
    10831080
  • trunk/Source/WebCore/rendering/RenderGrid.cpp

    r221931 r222441  
    878878}
    879879
    880 const StyleContentAlignmentData& RenderGrid::contentAlignmentNormalBehaviorGrid()
     880static const StyleContentAlignmentData& contentAlignmentNormalBehaviorGrid()
    881881{
    882882    static const StyleContentAlignmentData normalBehavior = {ContentPositionNormal, ContentDistributionStretch};
     
    15821582}
    15831583
     1584StyleContentAlignmentData RenderGrid::contentAlignment(GridTrackSizingDirection direction) const
     1585{
     1586    return direction == ForColumns ? style().resolvedJustifyContent(contentAlignmentNormalBehaviorGrid()) : style().resolvedAlignContent(contentAlignmentNormalBehaviorGrid());
     1587}
     1588
    15841589ContentAlignmentData RenderGrid::computeContentPositionAndDistributionOffset(GridTrackSizingDirection direction, const LayoutUnit& availableFreeSpace, unsigned numberOfGridTracks) const
    15851590{
    15861591    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();
    15891594    // If <content-distribution> value can't be applied, 'position' will become the associated
    15901595    // <content-position> fallback value.
    1591     auto contentAlignment = contentDistributionOffset(availableFreeSpace, position, distribution, numberOfGridTracks);
     1596    auto contentAlignment = contentDistributionOffset(availableFreeSpace, position, contentAlignmentData.distribution(), numberOfGridTracks);
    15921597    if (contentAlignment.isValid())
    15931598        return contentAlignment;
    15941599
    1595     auto overflow = (isRowAxis ? style().justifyContent() : style().alignContent()).overflow();
    1596     if (availableFreeSpace <= 0 && overflow == OverflowAlignmentSafe)
     1600    if (availableFreeSpace <= 0 && contentAlignmentData.overflow() == OverflowAlignmentSafe)
    15971601        return {0, 0};
    15981602
  • trunk/Source/WebCore/rendering/RenderGrid.h

    r221931 r222441  
    6666    LayoutUnit guttersSize(const Grid&, GridTrackSizingDirection, unsigned startLine, unsigned span, std::optional<LayoutUnit> availableSize) const;
    6767
    68     static const StyleContentAlignmentData& contentAlignmentNormalBehaviorGrid();
     68    StyleContentAlignmentData contentAlignment(GridTrackSizingDirection) const;
    6969
    7070protected:
  • trunk/Source/WebCore/rendering/style/RenderStyle.cpp

    r222435 r222441  
    279279        return resolvedSelfAlignment(justifySelf(), normalValueBehaviour);
    280280    return parentStyle->resolvedJustifyItems(normalValueBehaviour);
     281}
     282
     283static inline StyleContentAlignmentData resolvedContentAlignment(const StyleContentAlignmentData& value, const StyleContentAlignmentData& normalValueBehavior)
     284{
     285    return (value.position() == ContentPositionNormal && value.distribution() == ContentDistributionDefault) ? normalValueBehavior : value;
     286}
     287
     288StyleContentAlignmentData 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
     294StyleContentAlignmentData 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);
    281298}
    282299
  • trunk/Source/WebCore/rendering/style/RenderStyle.h

    r222435 r222441  
    167167    StyleSelfAlignmentData resolvedAlignItems(ItemPosition normalValueBehaviour) const;
    168168    StyleSelfAlignmentData resolvedAlignSelf(const RenderStyle* parentStyle, ItemPosition normalValueBehaviour) const;
     169    StyleContentAlignmentData resolvedAlignContent(const StyleContentAlignmentData& normalValueBehaviour) const;
    169170    StyleSelfAlignmentData resolvedJustifyItems(ItemPosition normalValueBehaviour) const;
    170171    StyleSelfAlignmentData resolvedJustifySelf(const RenderStyle* parentStyle, ItemPosition normalValueBehaviour) const;
     172    StyleContentAlignmentData resolvedJustifyContent(const StyleContentAlignmentData& normalValueBehaviour) const;
    171173
    172174    PseudoId styleType() const { return static_cast<PseudoId>(m_nonInheritedFlags.styleType); }
Note: See TracChangeset for help on using the changeset viewer.