| Index: Source/core/rendering/RenderGrid.cpp
|
| diff --git a/Source/core/rendering/RenderGrid.cpp b/Source/core/rendering/RenderGrid.cpp
|
| index 57369340605cd68e47251f47d55817cb78fc0e08..508b5fe0f880dec58c923b9335334aa292519cde 100644
|
| --- a/Source/core/rendering/RenderGrid.cpp
|
| +++ b/Source/core/rendering/RenderGrid.cpp
|
| @@ -239,19 +239,19 @@ void RenderGrid::addChild(RenderObject* newChild, RenderObject* beforeChild)
|
| dirtyGrid();
|
| return;
|
| } else {
|
| - insertItemIntoGrid(newChildBox, GridCoordinate(*rowPositions, *columnPositions));
|
| - addChildToIndexesMap(newChildBox);
|
| + insertItemIntoGrid(*newChildBox, GridCoordinate(*rowPositions, *columnPositions));
|
| + addChildToIndexesMap(*newChildBox);
|
| }
|
| }
|
|
|
| -void RenderGrid::addChildToIndexesMap(RenderBox* child)
|
| +void RenderGrid::addChildToIndexesMap(RenderBox& child)
|
| {
|
| - ASSERT(!m_gridItemsIndexesMap.contains(child));
|
| - RenderBox* sibling = child->nextSiblingBox();
|
| + ASSERT(!m_gridItemsIndexesMap.contains(&child));
|
| + RenderBox* sibling = child.nextSiblingBox();
|
| bool lastSibling = !sibling;
|
|
|
| if (lastSibling)
|
| - sibling = child->previousSiblingBox();
|
| + sibling = child.previousSiblingBox();
|
|
|
| size_t index = 0;
|
| if (sibling)
|
| @@ -262,7 +262,7 @@ void RenderGrid::addChildToIndexesMap(RenderBox* child)
|
| m_gridItemsIndexesMap.set(sibling, m_gridItemsIndexesMap.get(sibling) + 1);
|
| }
|
|
|
| - m_gridItemsIndexesMap.set(child, index);
|
| + m_gridItemsIndexesMap.set(&child, index);
|
| }
|
|
|
| void RenderGrid::removeChild(RenderObject* child)
|
| @@ -485,14 +485,14 @@ void RenderGrid::computeUsedBreadthOfGridTracks(GridTrackSizingDirection directi
|
| for (size_t i = 0; i < flexibleSizedTracksIndex.size(); ++i) {
|
| GridIterator iterator(m_grid, direction, flexibleSizedTracksIndex[i]);
|
| while (RenderBox* gridItem = iterator.nextGridItem()) {
|
| - const GridCoordinate coordinate = cachedGridCoordinate(gridItem);
|
| + const GridCoordinate coordinate = cachedGridCoordinate(*gridItem);
|
| const GridSpan span = (direction == ForColumns) ? coordinate.columns : coordinate.rows;
|
|
|
| // Do not include already processed items.
|
| if (i > 0 && span.resolvedInitialPosition.toInt() <= flexibleSizedTracksIndex[i - 1])
|
| continue;
|
|
|
| - double itemNormalizedFlexBreadth = computeNormalizedFractionBreadth(tracks, span, direction, maxContentForChild(gridItem, direction, sizingData.columnTracks));
|
| + double itemNormalizedFlexBreadth = computeNormalizedFractionBreadth(tracks, span, direction, maxContentForChild(*gridItem, direction, sizingData.columnTracks));
|
| normalizedFractionBreadth = std::max(normalizedFractionBreadth, itemNormalizedFlexBreadth);
|
| }
|
| }
|
| @@ -612,25 +612,25 @@ const GridTrackSize& RenderGrid::gridTrackSize(GridTrackSizingDirection directio
|
| return trackSize;
|
| }
|
|
|
| -LayoutUnit RenderGrid::logicalHeightForChild(RenderBox* child, Vector<GridTrack>& columnTracks)
|
| +LayoutUnit RenderGrid::logicalHeightForChild(RenderBox& child, Vector<GridTrack>& columnTracks)
|
| {
|
| - SubtreeLayoutScope layoutScope(*child);
|
| - LayoutUnit oldOverrideContainingBlockContentLogicalWidth = child->hasOverrideContainingBlockLogicalWidth() ? child->overrideContainingBlockContentLogicalWidth() : LayoutUnit();
|
| + SubtreeLayoutScope layoutScope(child);
|
| + LayoutUnit oldOverrideContainingBlockContentLogicalWidth = child.hasOverrideContainingBlockLogicalWidth() ? child.overrideContainingBlockContentLogicalWidth() : LayoutUnit();
|
| LayoutUnit overrideContainingBlockContentLogicalWidth = gridAreaBreadthForChild(child, ForColumns, columnTracks);
|
| - if (child->style()->logicalHeight().isPercent() || oldOverrideContainingBlockContentLogicalWidth != overrideContainingBlockContentLogicalWidth)
|
| - layoutScope.setNeedsLayout(child);
|
| + if (child.style()->logicalHeight().isPercent() || oldOverrideContainingBlockContentLogicalWidth != overrideContainingBlockContentLogicalWidth)
|
| + layoutScope.setNeedsLayout(&child);
|
|
|
| - child->setOverrideContainingBlockContentLogicalWidth(overrideContainingBlockContentLogicalWidth);
|
| + child.setOverrideContainingBlockContentLogicalWidth(overrideContainingBlockContentLogicalWidth);
|
| // If |child| has a percentage logical height, we shouldn't let it override its intrinsic height, which is
|
| // what we are interested in here. Thus we need to set the override logical height to -1 (no possible resolution).
|
| - child->setOverrideContainingBlockContentLogicalHeight(-1);
|
| - child->layoutIfNeeded();
|
| - return child->logicalHeight() + child->marginLogicalHeight();
|
| + child.setOverrideContainingBlockContentLogicalHeight(-1);
|
| + child.layoutIfNeeded();
|
| + return child.logicalHeight() + child.marginLogicalHeight();
|
| }
|
|
|
| -LayoutUnit RenderGrid::minContentForChild(RenderBox* child, GridTrackSizingDirection direction, Vector<GridTrack>& columnTracks)
|
| +LayoutUnit RenderGrid::minContentForChild(RenderBox& child, GridTrackSizingDirection direction, Vector<GridTrack>& columnTracks)
|
| {
|
| - bool hasOrthogonalWritingMode = child->isHorizontalWritingMode() != isHorizontalWritingMode();
|
| + bool hasOrthogonalWritingMode = child.isHorizontalWritingMode() != isHorizontalWritingMode();
|
| // FIXME: Properly support orthogonal writing mode.
|
| if (hasOrthogonalWritingMode)
|
| return 0;
|
| @@ -638,15 +638,15 @@ LayoutUnit RenderGrid::minContentForChild(RenderBox* child, GridTrackSizingDirec
|
| if (direction == ForColumns) {
|
| // FIXME: It's unclear if we should return the intrinsic width or the preferred width.
|
| // See http://lists.w3.org/Archives/Public/www-style/2013Jan/0245.html
|
| - return child->minPreferredLogicalWidth() + marginIntrinsicLogicalWidthForChild(child);
|
| + return child.minPreferredLogicalWidth() + marginIntrinsicLogicalWidthForChild(&child);
|
| }
|
|
|
| return logicalHeightForChild(child, columnTracks);
|
| }
|
|
|
| -LayoutUnit RenderGrid::maxContentForChild(RenderBox* child, GridTrackSizingDirection direction, Vector<GridTrack>& columnTracks)
|
| +LayoutUnit RenderGrid::maxContentForChild(RenderBox& child, GridTrackSizingDirection direction, Vector<GridTrack>& columnTracks)
|
| {
|
| - bool hasOrthogonalWritingMode = child->isHorizontalWritingMode() != isHorizontalWritingMode();
|
| + bool hasOrthogonalWritingMode = child.isHorizontalWritingMode() != isHorizontalWritingMode();
|
| // FIXME: Properly support orthogonal writing mode.
|
| if (hasOrthogonalWritingMode)
|
| return LayoutUnit();
|
| @@ -654,13 +654,13 @@ LayoutUnit RenderGrid::maxContentForChild(RenderBox* child, GridTrackSizingDirec
|
| if (direction == ForColumns) {
|
| // FIXME: It's unclear if we should return the intrinsic width or the preferred width.
|
| // See http://lists.w3.org/Archives/Public/www-style/2013Jan/0245.html
|
| - return child->maxPreferredLogicalWidth() + marginIntrinsicLogicalWidthForChild(child);
|
| + return child.maxPreferredLogicalWidth() + marginIntrinsicLogicalWidthForChild(&child);
|
| }
|
|
|
| return logicalHeightForChild(child, columnTracks);
|
| }
|
|
|
| -size_t RenderGrid::gridItemSpan(const RenderBox* child, GridTrackSizingDirection direction)
|
| +size_t RenderGrid::gridItemSpan(const RenderBox& child, GridTrackSizingDirection direction)
|
| {
|
| GridCoordinate childCoordinate = cachedGridCoordinate(child);
|
| GridSpan childSpan = (direction == ForRows) ? childCoordinate.rows : childCoordinate.columns;
|
| @@ -695,16 +695,16 @@ void RenderGrid::resolveContentBasedTrackSizingFunctions(GridTrackSizingDirectio
|
| Vector<GridItemWithSpan> itemsSortedByIncreasingSpan;
|
|
|
| while (RenderBox* gridItem = iterator.nextGridItem())
|
| - itemsSortedByIncreasingSpan.append(std::make_pair(gridItem, gridItemSpan(gridItem, direction)));
|
| + itemsSortedByIncreasingSpan.append(std::make_pair(gridItem, gridItemSpan(*gridItem, direction)));
|
| std::stable_sort(itemsSortedByIncreasingSpan.begin(), itemsSortedByIncreasingSpan.end(), gridItemWithSpanSorter);
|
| Vector<GridItemWithSpan>::iterator end = std::unique(itemsSortedByIncreasingSpan.begin(), itemsSortedByIncreasingSpan.end(), uniquePointerInPair);
|
|
|
| for (Vector<GridItemWithSpan>::iterator it = itemsSortedByIncreasingSpan.begin(); it != end; ++it) {
|
| RenderBox* gridItem = it->first;
|
| - resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, gridItem, &GridTrackSize::hasMinOrMaxContentMinTrackBreadth, &RenderGrid::minContentForChild, &GridTrack::usedBreadth, &GridTrack::growUsedBreadth);
|
| - resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, gridItem, &GridTrackSize::hasMaxContentMinTrackBreadth, &RenderGrid::maxContentForChild, &GridTrack::usedBreadth, &GridTrack::growUsedBreadth);
|
| - resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, gridItem, &GridTrackSize::hasMinOrMaxContentMaxTrackBreadth, &RenderGrid::minContentForChild, &GridTrack::maxBreadthIfNotInfinite, &GridTrack::growMaxBreadth);
|
| - resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, gridItem, &GridTrackSize::hasMaxContentMaxTrackBreadth, &RenderGrid::maxContentForChild, &GridTrack::maxBreadthIfNotInfinite, &GridTrack::growMaxBreadth);
|
| + resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, *gridItem, &GridTrackSize::hasMinOrMaxContentMinTrackBreadth, &RenderGrid::minContentForChild, &GridTrack::usedBreadth, &GridTrack::growUsedBreadth);
|
| + resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, *gridItem, &GridTrackSize::hasMaxContentMinTrackBreadth, &RenderGrid::maxContentForChild, &GridTrack::usedBreadth, &GridTrack::growUsedBreadth);
|
| + resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, *gridItem, &GridTrackSize::hasMinOrMaxContentMaxTrackBreadth, &RenderGrid::minContentForChild, &GridTrack::maxBreadthIfNotInfinite, &GridTrack::growMaxBreadth);
|
| + resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, *gridItem, &GridTrackSize::hasMaxContentMaxTrackBreadth, &RenderGrid::maxContentForChild, &GridTrack::maxBreadthIfNotInfinite, &GridTrack::growMaxBreadth);
|
| }
|
|
|
| GridTrack& track = (direction == ForColumns) ? sizingData.columnTracks[trackIndex] : sizingData.rowTracks[trackIndex];
|
| @@ -713,7 +713,7 @@ void RenderGrid::resolveContentBasedTrackSizingFunctions(GridTrackSizingDirectio
|
| }
|
| }
|
|
|
| -void RenderGrid::resolveContentBasedTrackSizingFunctionsForItems(GridTrackSizingDirection direction, GridSizingData& sizingData, RenderBox* gridItem, FilterFunction filterFunction, SizingFunction sizingFunction, AccumulatorGetter trackGetter, AccumulatorGrowFunction trackGrowthFunction)
|
| +void RenderGrid::resolveContentBasedTrackSizingFunctionsForItems(GridTrackSizingDirection direction, GridSizingData& sizingData, RenderBox& gridItem, FilterFunction filterFunction, SizingFunction sizingFunction, AccumulatorGetter trackGetter, AccumulatorGrowFunction trackGrowthFunction)
|
| {
|
| const GridCoordinate coordinate = cachedGridCoordinate(gridItem);
|
| const GridResolvedPosition initialTrackPosition = (direction == ForColumns) ? coordinate.columns.resolvedInitialPosition : coordinate.rows.resolvedInitialPosition;
|
| @@ -825,17 +825,17 @@ void RenderGrid::ensureGridSize(size_t maximumRowIndex, size_t maximumColumnInde
|
| }
|
| }
|
|
|
| -void RenderGrid::insertItemIntoGrid(RenderBox* child, const GridCoordinate& coordinate)
|
| +void RenderGrid::insertItemIntoGrid(RenderBox& child, const GridCoordinate& coordinate)
|
| {
|
| ensureGridSize(coordinate.rows.resolvedFinalPosition.toInt(), coordinate.columns.resolvedFinalPosition.toInt());
|
|
|
| for (GridSpan::iterator row = coordinate.rows.begin(); row != coordinate.rows.end(); ++row) {
|
| for (GridSpan::iterator column = coordinate.columns.begin(); column != coordinate.columns.end(); ++column)
|
| - m_grid[row.toInt()][column.toInt()].append(child);
|
| + m_grid[row.toInt()][column.toInt()].append(&child);
|
| }
|
|
|
| - RELEASE_ASSERT(!m_gridItemCoordinate.contains(child));
|
| - m_gridItemCoordinate.set(child, coordinate);
|
| + RELEASE_ASSERT(!m_gridItemCoordinate.contains(&child));
|
| + m_gridItemCoordinate.set(&child, coordinate);
|
| }
|
|
|
| void RenderGrid::placeItemsOnGrid()
|
| @@ -866,7 +866,7 @@ void RenderGrid::placeItemsOnGrid()
|
| specifiedMajorAxisAutoGridItems.append(child);
|
| continue;
|
| }
|
| - insertItemIntoGrid(child, GridCoordinate(*rowPositions, *columnPositions));
|
| + insertItemIntoGrid(*child, GridCoordinate(*rowPositions, *columnPositions));
|
| }
|
|
|
| ASSERT(gridRowCount() >= style()->gridTemplateRows().size());
|
| @@ -926,11 +926,11 @@ void RenderGrid::populateExplicitGridAndOrderIterator()
|
| m_grid[i].grow(maximumColumnIndex);
|
| }
|
|
|
| -PassOwnPtr<GridCoordinate> RenderGrid::createEmptyGridAreaAtSpecifiedPositionsOutsideGrid(const RenderBox* gridItem, GridTrackSizingDirection specifiedDirection, const GridSpan& specifiedPositions) const
|
| +PassOwnPtr<GridCoordinate> RenderGrid::createEmptyGridAreaAtSpecifiedPositionsOutsideGrid(const RenderBox& gridItem, GridTrackSizingDirection specifiedDirection, const GridSpan& specifiedPositions) const
|
| {
|
| GridTrackSizingDirection crossDirection = specifiedDirection == ForColumns ? ForRows : ForColumns;
|
| const size_t endOfCrossDirection = crossDirection == ForColumns ? gridColumnCount() : gridRowCount();
|
| - GridSpan crossDirectionPositions = GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition(*style(), *gridItem, crossDirection, GridResolvedPosition(endOfCrossDirection));
|
| + GridSpan crossDirectionPositions = GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition(*style(), gridItem, crossDirection, GridResolvedPosition(endOfCrossDirection));
|
| return adoptPtr(new GridCoordinate(specifiedDirection == ForColumns ? crossDirectionPositions : specifiedPositions, specifiedDirection == ForColumns ? specifiedPositions : crossDirectionPositions));
|
| }
|
|
|
| @@ -943,8 +943,8 @@ void RenderGrid::placeSpecifiedMajorAxisItemsOnGrid(const Vector<RenderBox*>& au
|
| GridIterator iterator(m_grid, autoPlacementMajorAxisDirection(), majorAxisPositions->resolvedInitialPosition.toInt());
|
| OwnPtr<GridCoordinate> emptyGridArea = iterator.nextEmptyGridArea(majorAxisPositions->integerSpan(), minorAxisPositions.integerSpan());
|
| if (!emptyGridArea)
|
| - emptyGridArea = createEmptyGridAreaAtSpecifiedPositionsOutsideGrid(autoGridItems[i], autoPlacementMajorAxisDirection(), *majorAxisPositions);
|
| - insertItemIntoGrid(autoGridItems[i], *emptyGridArea);
|
| + emptyGridArea = createEmptyGridAreaAtSpecifiedPositionsOutsideGrid(*autoGridItems[i], autoPlacementMajorAxisDirection(), *majorAxisPositions);
|
| + insertItemIntoGrid(*autoGridItems[i], *emptyGridArea);
|
| }
|
| }
|
|
|
| @@ -954,7 +954,7 @@ void RenderGrid::placeAutoMajorAxisItemsOnGrid(const Vector<RenderBox*>& autoGri
|
| bool isGridAutoFlowDense = style()->isGridAutoFlowAlgorithmDense();
|
|
|
| for (size_t i = 0; i < autoGridItems.size(); ++i) {
|
| - placeAutoMajorAxisItemOnGrid(autoGridItems[i], autoPlacementCursor);
|
| + placeAutoMajorAxisItemOnGrid(*autoGridItems[i], autoPlacementCursor);
|
|
|
| // If grid-auto-flow is dense, reset auto-placement cursor.
|
| if (isGridAutoFlowDense) {
|
| @@ -964,11 +964,11 @@ void RenderGrid::placeAutoMajorAxisItemsOnGrid(const Vector<RenderBox*>& autoGri
|
| }
|
| }
|
|
|
| -void RenderGrid::placeAutoMajorAxisItemOnGrid(RenderBox* gridItem, std::pair<size_t, size_t>& autoPlacementCursor)
|
| +void RenderGrid::placeAutoMajorAxisItemOnGrid(RenderBox& gridItem, std::pair<size_t, size_t>& autoPlacementCursor)
|
| {
|
| - OwnPtr<GridSpan> minorAxisPositions = GridResolvedPosition::resolveGridPositionsFromStyle(*style(), *gridItem, autoPlacementMinorAxisDirection());
|
| - ASSERT(!GridResolvedPosition::resolveGridPositionsFromStyle(*style(), *gridItem, autoPlacementMajorAxisDirection()));
|
| - GridSpan majorAxisPositions = GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition(*style(), *gridItem, autoPlacementMajorAxisDirection(), GridResolvedPosition(0));
|
| + OwnPtr<GridSpan> minorAxisPositions = GridResolvedPosition::resolveGridPositionsFromStyle(*style(), gridItem, autoPlacementMinorAxisDirection());
|
| + ASSERT(!GridResolvedPosition::resolveGridPositionsFromStyle(*style(), gridItem, autoPlacementMajorAxisDirection()));
|
| + GridSpan majorAxisPositions = GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition(*style(), gridItem, autoPlacementMajorAxisDirection(), GridResolvedPosition(0));
|
|
|
| const size_t endOfMajorAxis = (autoPlacementMajorAxisDirection() == ForColumns) ? gridColumnCount() : gridRowCount();
|
| size_t majorAxisAutoPlacementCursor = autoPlacementMajorAxisDirection() == ForColumns ? autoPlacementCursor.second : autoPlacementCursor.first;
|
| @@ -988,7 +988,7 @@ void RenderGrid::placeAutoMajorAxisItemOnGrid(RenderBox* gridItem, std::pair<siz
|
| if (!emptyGridArea)
|
| emptyGridArea = createEmptyGridAreaAtSpecifiedPositionsOutsideGrid(gridItem, autoPlacementMinorAxisDirection(), *minorAxisPositions);
|
| } else {
|
| - GridSpan minorAxisPositions = GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition(*style(), *gridItem, autoPlacementMinorAxisDirection(), GridResolvedPosition(0));
|
| + GridSpan minorAxisPositions = GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition(*style(), gridItem, autoPlacementMinorAxisDirection(), GridResolvedPosition(0));
|
|
|
| for (size_t majorAxisIndex = majorAxisAutoPlacementCursor; majorAxisIndex < endOfMajorAxis; ++majorAxisIndex) {
|
| GridIterator iterator(m_grid, autoPlacementMajorAxisDirection(), majorAxisIndex, minorAxisAutoPlacementCursor);
|
| @@ -1058,8 +1058,8 @@ void RenderGrid::layoutGridItems()
|
| LayoutUnit oldOverrideContainingBlockContentLogicalWidth = child->hasOverrideContainingBlockLogicalWidth() ? child->overrideContainingBlockContentLogicalWidth() : LayoutUnit();
|
| LayoutUnit oldOverrideContainingBlockContentLogicalHeight = child->hasOverrideContainingBlockLogicalHeight() ? child->overrideContainingBlockContentLogicalHeight() : LayoutUnit();
|
|
|
| - LayoutUnit overrideContainingBlockContentLogicalWidth = gridAreaBreadthForChild(child, ForColumns, sizingData.columnTracks);
|
| - LayoutUnit overrideContainingBlockContentLogicalHeight = gridAreaBreadthForChild(child, ForRows, sizingData.rowTracks);
|
| + LayoutUnit overrideContainingBlockContentLogicalWidth = gridAreaBreadthForChild(*child, ForColumns, sizingData.columnTracks);
|
| + LayoutUnit overrideContainingBlockContentLogicalHeight = gridAreaBreadthForChild(*child, ForRows, sizingData.rowTracks);
|
|
|
| SubtreeLayoutScope layoutScope(*child);
|
| if (oldOverrideContainingBlockContentLogicalWidth != overrideContainingBlockContentLogicalWidth || (oldOverrideContainingBlockContentLogicalHeight != overrideContainingBlockContentLogicalHeight && child->hasRelativeLogicalHeight()))
|
| @@ -1074,11 +1074,11 @@ void RenderGrid::layoutGridItems()
|
| child->layoutIfNeeded();
|
|
|
| #if ENABLE(ASSERT)
|
| - const GridCoordinate& coordinate = cachedGridCoordinate(child);
|
| + const GridCoordinate& coordinate = cachedGridCoordinate(*child);
|
| ASSERT(coordinate.columns.resolvedInitialPosition.toInt() < sizingData.columnTracks.size());
|
| ASSERT(coordinate.rows.resolvedInitialPosition.toInt() < sizingData.rowTracks.size());
|
| #endif
|
| - child->setLogicalLocation(findChildLogicalPosition(child));
|
| + child->setLogicalLocation(findChildLogicalPosition(*child));
|
|
|
| // Keep track of children overflowing their grid area as we might need to paint them even if the grid-area is
|
| // not visible
|
| @@ -1095,13 +1095,13 @@ void RenderGrid::layoutGridItems()
|
| setLogicalHeight(logicalHeight() + borderAndPaddingLogicalHeight());
|
| }
|
|
|
| -GridCoordinate RenderGrid::cachedGridCoordinate(const RenderBox* gridItem) const
|
| +GridCoordinate RenderGrid::cachedGridCoordinate(const RenderBox& gridItem) const
|
| {
|
| - ASSERT(m_gridItemCoordinate.contains(gridItem));
|
| - return m_gridItemCoordinate.get(gridItem);
|
| + ASSERT(m_gridItemCoordinate.contains(&gridItem));
|
| + return m_gridItemCoordinate.get(&gridItem);
|
| }
|
|
|
| -LayoutUnit RenderGrid::gridAreaBreadthForChild(const RenderBox* child, GridTrackSizingDirection direction, const Vector<GridTrack>& tracks) const
|
| +LayoutUnit RenderGrid::gridAreaBreadthForChild(const RenderBox& child, GridTrackSizingDirection direction, const Vector<GridTrack>& tracks) const
|
| {
|
| const GridCoordinate& coordinate = cachedGridCoordinate(child);
|
| const GridSpan& span = (direction == ForColumns) ? coordinate.columns : coordinate.rows;
|
| @@ -1124,28 +1124,28 @@ void RenderGrid::populateGridPositions(const GridSizingData& sizingData)
|
| m_rowPositions[i + 1] = m_rowPositions[i] + sizingData.rowTracks[i].m_usedBreadth;
|
| }
|
|
|
| -LayoutUnit RenderGrid::startOfColumnForChild(const RenderBox* child) const
|
| +LayoutUnit RenderGrid::startOfColumnForChild(const RenderBox& child) const
|
| {
|
| const GridCoordinate& coordinate = cachedGridCoordinate(child);
|
| LayoutUnit startOfColumn = m_columnPositions[coordinate.columns.resolvedInitialPosition.toInt()];
|
| // The grid items should be inside the grid container's border box, that's why they need to be shifted.
|
| // FIXME: This should account for the grid item's <overflow-position>.
|
| - return startOfColumn + marginStartForChild(child);
|
| + return startOfColumn + marginStartForChild(&child);
|
| }
|
|
|
| -LayoutUnit RenderGrid::endOfColumnForChild(const RenderBox* child) const
|
| +LayoutUnit RenderGrid::endOfColumnForChild(const RenderBox& child) const
|
| {
|
| const GridCoordinate& coordinate = cachedGridCoordinate(child);
|
| LayoutUnit startOfColumn = m_columnPositions[coordinate.columns.resolvedInitialPosition.toInt()];
|
| // The grid items should be inside the grid container's border box, that's why they need to be shifted.
|
| - LayoutUnit columnPosition = startOfColumn + marginStartForChild(child);
|
| + LayoutUnit columnPosition = startOfColumn + marginStartForChild(&child);
|
|
|
| LayoutUnit endOfColumn = m_columnPositions[coordinate.columns.resolvedFinalPosition.next().toInt()];
|
| // FIXME: This should account for the grid item's <overflow-position>.
|
| - return columnPosition + std::max<LayoutUnit>(0, endOfColumn - m_columnPositions[coordinate.columns.resolvedInitialPosition.toInt()] - child->logicalWidth());
|
| + return columnPosition + std::max<LayoutUnit>(0, endOfColumn - m_columnPositions[coordinate.columns.resolvedInitialPosition.toInt()] - child.logicalWidth());
|
| }
|
|
|
| -LayoutUnit RenderGrid::columnPositionAlignedWithGridContainerStart(const RenderBox* child) const
|
| +LayoutUnit RenderGrid::columnPositionAlignedWithGridContainerStart(const RenderBox& child) const
|
| {
|
| if (style()->isLeftToRightDirection())
|
| return startOfColumnForChild(child);
|
| @@ -1153,7 +1153,7 @@ LayoutUnit RenderGrid::columnPositionAlignedWithGridContainerStart(const RenderB
|
| return endOfColumnForChild(child);
|
| }
|
|
|
| -LayoutUnit RenderGrid::columnPositionAlignedWithGridContainerEnd(const RenderBox* child) const
|
| +LayoutUnit RenderGrid::columnPositionAlignedWithGridContainerEnd(const RenderBox& child) const
|
| {
|
| if (!style()->isLeftToRightDirection())
|
| return startOfColumnForChild(child);
|
| @@ -1161,14 +1161,14 @@ LayoutUnit RenderGrid::columnPositionAlignedWithGridContainerEnd(const RenderBox
|
| return endOfColumnForChild(child);
|
| }
|
|
|
| -LayoutUnit RenderGrid::centeredColumnPositionForChild(const RenderBox* child) const
|
| +LayoutUnit RenderGrid::centeredColumnPositionForChild(const RenderBox& child) const
|
| {
|
| const GridCoordinate& coordinate = cachedGridCoordinate(child);
|
| LayoutUnit startOfColumn = m_columnPositions[coordinate.columns.resolvedInitialPosition.toInt()];
|
| LayoutUnit endOfColumn = m_columnPositions[coordinate.columns.resolvedFinalPosition.next().toInt()];
|
| - LayoutUnit columnPosition = startOfColumn + marginStartForChild(child);
|
| + LayoutUnit columnPosition = startOfColumn + marginStartForChild(&child);
|
| // FIXME: This should account for the grid item's <overflow-position>.
|
| - return columnPosition + std::max<LayoutUnit>(0, endOfColumn - startOfColumn - child->logicalWidth()) / 2;
|
| + return columnPosition + std::max<LayoutUnit>(0, endOfColumn - startOfColumn - child.logicalWidth()) / 2;
|
| }
|
|
|
| static ItemPosition resolveJustification(const RenderStyle* parentStyle, const RenderStyle* childStyle)
|
| @@ -1180,11 +1180,11 @@ static ItemPosition resolveJustification(const RenderStyle* parentStyle, const R
|
| return justify;
|
| }
|
|
|
| -LayoutUnit RenderGrid::columnPositionForChild(const RenderBox* child) const
|
| +LayoutUnit RenderGrid::columnPositionForChild(const RenderBox& child) const
|
| {
|
| - bool hasOrthogonalWritingMode = child->isHorizontalWritingMode() != isHorizontalWritingMode();
|
| + bool hasOrthogonalWritingMode = child.isHorizontalWritingMode() != isHorizontalWritingMode();
|
|
|
| - switch (resolveJustification(style(), child->style())) {
|
| + switch (resolveJustification(style(), child.style())) {
|
| case ItemPositionSelfStart:
|
| // For orthogonal writing-modes, this computes to 'start'
|
| // FIXME: grid track sizing and positioning do not support orthogonal modes yet.
|
| @@ -1192,7 +1192,7 @@ LayoutUnit RenderGrid::columnPositionForChild(const RenderBox* child) const
|
| return columnPositionAlignedWithGridContainerStart(child);
|
|
|
| // self-start is based on the child's direction. That's why we need to check against the grid container's direction.
|
| - if (child->style()->direction() != style()->direction())
|
| + if (child.style()->direction() != style()->direction())
|
| return columnPositionAlignedWithGridContainerEnd(child);
|
|
|
| return columnPositionAlignedWithGridContainerStart(child);
|
| @@ -1203,7 +1203,7 @@ LayoutUnit RenderGrid::columnPositionForChild(const RenderBox* child) const
|
| return columnPositionAlignedWithGridContainerEnd(child);
|
|
|
| // self-end is based on the child's direction. That's why we need to check against the grid container's direction.
|
| - if (child->style()->direction() != style()->direction())
|
| + if (child.style()->direction() != style()->direction())
|
| return columnPositionAlignedWithGridContainerStart(child);
|
|
|
| return columnPositionAlignedWithGridContainerEnd(child);
|
| @@ -1254,41 +1254,41 @@ LayoutUnit RenderGrid::columnPositionForChild(const RenderBox* child) const
|
| return 0;
|
| }
|
|
|
| -LayoutUnit RenderGrid::endOfRowForChild(const RenderBox* child) const
|
| +LayoutUnit RenderGrid::endOfRowForChild(const RenderBox& child) const
|
| {
|
| const GridCoordinate& coordinate = cachedGridCoordinate(child);
|
|
|
| LayoutUnit startOfRow = m_rowPositions[coordinate.rows.resolvedInitialPosition.toInt()];
|
| // The grid items should be inside the grid container's border box, that's why they need to be shifted.
|
| - LayoutUnit rowPosition = startOfRow + marginBeforeForChild(child);
|
| + LayoutUnit rowPosition = startOfRow + marginBeforeForChild(&child);
|
|
|
| LayoutUnit endOfRow = m_rowPositions[coordinate.rows.resolvedFinalPosition.next().toInt()];
|
| // FIXME: This should account for the grid item's <overflow-position>.
|
| - return rowPosition + std::max<LayoutUnit>(0, endOfRow - startOfRow - child->logicalHeight());
|
| + return rowPosition + std::max<LayoutUnit>(0, endOfRow - startOfRow - child.logicalHeight());
|
| }
|
|
|
| -LayoutUnit RenderGrid::startOfRowForChild(const RenderBox* child) const
|
| +LayoutUnit RenderGrid::startOfRowForChild(const RenderBox& child) const
|
| {
|
| const GridCoordinate& coordinate = cachedGridCoordinate(child);
|
|
|
| LayoutUnit startOfRow = m_rowPositions[coordinate.rows.resolvedInitialPosition.toInt()];
|
| // The grid items should be inside the grid container's border box, that's why they need to be shifted.
|
| // FIXME: This should account for the grid item's <overflow-position>.
|
| - LayoutUnit rowPosition = startOfRow + marginBeforeForChild(child);
|
| + LayoutUnit rowPosition = startOfRow + marginBeforeForChild(&child);
|
|
|
| return rowPosition;
|
| }
|
|
|
| -LayoutUnit RenderGrid::centeredRowPositionForChild(const RenderBox* child) const
|
| +LayoutUnit RenderGrid::centeredRowPositionForChild(const RenderBox& child) const
|
| {
|
| const GridCoordinate& coordinate = cachedGridCoordinate(child);
|
|
|
| // The grid items should be inside the grid container's border box, that's why they need to be shifted.
|
| - LayoutUnit startOfRow = m_rowPositions[coordinate.rows.resolvedInitialPosition.toInt()] + marginBeforeForChild(child);
|
| + LayoutUnit startOfRow = m_rowPositions[coordinate.rows.resolvedInitialPosition.toInt()] + marginBeforeForChild(&child);
|
| LayoutUnit endOfRow = m_rowPositions[coordinate.rows.resolvedFinalPosition.next().toInt()];
|
|
|
| // FIXME: This should account for the grid item's <overflow-position>.
|
| - return startOfRow + std::max<LayoutUnit>(0, endOfRow - startOfRow - child->logicalHeight()) / 2;
|
| + return startOfRow + std::max<LayoutUnit>(0, endOfRow - startOfRow - child.logicalHeight()) / 2;
|
| }
|
|
|
| // FIXME: We should move this logic to the StyleAdjuster or the StyleBuilder.
|
| @@ -1301,10 +1301,10 @@ static ItemPosition resolveAlignment(const RenderStyle* parentStyle, const Rende
|
| return align;
|
| }
|
|
|
| -LayoutUnit RenderGrid::rowPositionForChild(const RenderBox* child) const
|
| +LayoutUnit RenderGrid::rowPositionForChild(const RenderBox& child) const
|
| {
|
| - bool hasOrthogonalWritingMode = child->isHorizontalWritingMode() != isHorizontalWritingMode();
|
| - ItemPosition alignSelf = resolveAlignment(style(), child->style());
|
| + bool hasOrthogonalWritingMode = child.isHorizontalWritingMode() != isHorizontalWritingMode();
|
| + ItemPosition alignSelf = resolveAlignment(style(), child.style());
|
|
|
| switch (alignSelf) {
|
| case ItemPositionSelfStart:
|
| @@ -1314,7 +1314,7 @@ LayoutUnit RenderGrid::rowPositionForChild(const RenderBox* child) const
|
| return startOfRowForChild(child);
|
|
|
| // self-start is based on the child's block axis direction. That's why we need to check against the grid container's block flow.
|
| - if (child->style()->writingMode() != style()->writingMode())
|
| + if (child.style()->writingMode() != style()->writingMode())
|
| return endOfRowForChild(child);
|
|
|
| return startOfRowForChild(child);
|
| @@ -1325,7 +1325,7 @@ LayoutUnit RenderGrid::rowPositionForChild(const RenderBox* child) const
|
| return endOfRowForChild(child);
|
|
|
| // self-end is based on the child's block axis direction. That's why we need to check against the grid container's block flow.
|
| - if (child->style()->writingMode() != style()->writingMode())
|
| + if (child.style()->writingMode() != style()->writingMode())
|
| return startOfRowForChild(child);
|
|
|
| return endOfRowForChild(child);
|
| @@ -1373,7 +1373,7 @@ LayoutUnit RenderGrid::rowPositionForChild(const RenderBox* child) const
|
| return 0;
|
| }
|
|
|
| -LayoutPoint RenderGrid::findChildLogicalPosition(const RenderBox* child) const
|
| +LayoutPoint RenderGrid::findChildLogicalPosition(const RenderBox& child) const
|
| {
|
| return LayoutPoint(columnPositionForChild(child), rowPositionForChild(child));
|
| }
|
|
|