Index: Source/core/rendering/RenderGrid.cpp |
diff --git a/Source/core/rendering/RenderGrid.cpp b/Source/core/rendering/RenderGrid.cpp |
index cb5db3844037793c771bd869569cd74f08f5cb63..33507e987ee5ec6a883bb0804fdf785b79958eb4 100644 |
--- a/Source/core/rendering/RenderGrid.cpp |
+++ b/Source/core/rendering/RenderGrid.cpp |
@@ -1102,8 +1102,8 @@ void RenderGrid::layoutGridItems() |
populateGridPositions(sizingData, availableSpaceForColumns, availableSpaceForRows); |
m_gridItemsOverflowingGridArea.resize(0); |
- LayoutUnit columnOffset = contentPositionAndDistributionColumnOffset(availableSpaceForColumns, style()->justifyContent(), style()->justifyContentDistribution(), m_columnPositions.size() - 1); |
- LayoutUnit rowOffset = contentPositionAndDistributionRowOffset(availableSpaceForRows, style()->alignContent(), style()->alignContentDistribution(), m_rowPositions.size() - 1); |
+ LayoutUnit columnOffset = contentPositionAndDistributionColumnOffset(availableSpaceForColumns, style()->justifyContent(), style()->justifyContentDistribution(), style()->justifyContentOverflowAlignment(), m_columnPositions.size() - 1); |
+ LayoutUnit rowOffset = contentPositionAndDistributionRowOffset(availableSpaceForRows, style()->alignContent(), style()->alignContentDistribution(), style()->alignContentOverflowAlignment(), m_rowPositions.size() - 1); |
LayoutSize contentPositionOffset(columnOffset, rowOffset); |
for (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) { |
@@ -1629,9 +1629,9 @@ static inline LayoutUnit offsetToEndEdge(bool isLeftToRight, LayoutUnit availabl |
return !isLeftToRight ? LayoutUnit(0) : availableSpace; |
} |
-LayoutUnit RenderGrid::contentPositionAndDistributionColumnOffset(LayoutUnit availableFreeSpace, ContentPosition position, ContentDistributionType distribution, unsigned numberOfGridTracks) const |
+LayoutUnit RenderGrid::contentPositionAndDistributionColumnOffset(LayoutUnit availableFreeSpace, ContentPosition position, ContentDistributionType distribution, OverflowAlignment overflow, unsigned numberOfGridTracks) const |
{ |
- if (availableFreeSpace <= 0) |
+ if (overflow == OverflowAlignmentSafe && availableFreeSpace <= 0) |
return 0; |
// FIXME: for the time being, spec states that it will always fallback for Grids, but |
@@ -1639,8 +1639,6 @@ LayoutUnit RenderGrid::contentPositionAndDistributionColumnOffset(LayoutUnit ava |
if (distribution != ContentDistributionDefault && position == ContentPositionAuto) |
position = resolveContentDistributionFallback(distribution); |
- // FIXME: still pending of implementing support for the <overflow-position> keyword |
- // in justify-content and aling-content properties. |
switch (position) { |
case ContentPositionLeft: |
return 0; |
@@ -1669,9 +1667,9 @@ LayoutUnit RenderGrid::contentPositionAndDistributionColumnOffset(LayoutUnit ava |
return 0; |
} |
-LayoutUnit RenderGrid::contentPositionAndDistributionRowOffset(LayoutUnit availableFreeSpace, ContentPosition position, ContentDistributionType distribution, unsigned numberOfGridTracks) const |
+LayoutUnit RenderGrid::contentPositionAndDistributionRowOffset(LayoutUnit availableFreeSpace, ContentPosition position, ContentDistributionType distribution, OverflowAlignment overflow, unsigned numberOfGridTracks) const |
{ |
- if (availableFreeSpace <= 0) |
+ if (overflow == OverflowAlignmentSafe && availableFreeSpace <= 0) |
return 0; |
// FIXME: for the time being, spec states that it will always fallback for Grids, but |
@@ -1679,8 +1677,6 @@ LayoutUnit RenderGrid::contentPositionAndDistributionRowOffset(LayoutUnit availa |
if (distribution != ContentDistributionDefault && position == ContentPositionAuto) |
position = resolveContentDistributionFallback(distribution); |
- // FIXME: still pending of implementing support for the <overflow-position> keyword |
- // in justify-content and align-content properties. |
switch (position) { |
case ContentPositionLeft: |
// The align-content's axis is always orthogonal to the inline-axis. |