| Index: Source/core/rendering/RenderTableSection.cpp
|
| diff --git a/Source/core/rendering/RenderTableSection.cpp b/Source/core/rendering/RenderTableSection.cpp
|
| index 282e7fa45ab0745dbbfa2c5ae61cf3c6524ae5f8..322e51b4c580b2100d874aa06ce05b45e9204eb4 100644
|
| --- a/Source/core/rendering/RenderTableSection.cpp
|
| +++ b/Source/core/rendering/RenderTableSection.cpp
|
| @@ -473,13 +473,15 @@ void RenderTableSection::updateBaselineForCell(RenderTableCell* cell, unsigned r
|
| if (!cell->isBaselineAligned())
|
| return;
|
|
|
| - LayoutUnit baselinePosition = cell->cellBaselinePosition();
|
| - if (baselinePosition > cell->borderBefore() + cell->paddingBefore()) {
|
| + // Calculating the row's baseline excluding intrinsic padding because row's baseline will come into it's right
|
| + // position when row's baseline would be calculated for the cell which introduced intrinsic padding for other cells.
|
| + LayoutUnit baselinePosition = cell->cellBaselinePosition() - cell->intrinsicPaddingBefore();
|
| + if (baselinePosition > cell->borderBefore() + (cell->paddingBefore() - cell->intrinsicPaddingBefore())) {
|
| m_grid[row].baseline = max(m_grid[row].baseline, baselinePosition);
|
|
|
| int cellStartRowBaselineDescent = 0;
|
| if (cell->rowSpan() == 1) {
|
| - baselineDescent = max(baselineDescent, cell->logicalHeightForRowSizing() - (baselinePosition - cell->intrinsicPaddingBefore()));
|
| + baselineDescent = max(baselineDescent, cell->logicalHeightForRowSizing() - baselinePosition);
|
| cellStartRowBaselineDescent = baselineDescent;
|
| }
|
| m_rowPos[row + 1] = max<int>(m_rowPos[row + 1], m_rowPos[row] + m_grid[row].baseline + cellStartRowBaselineDescent);
|
|
|