| Index: Source/core/rendering/RenderTableSection.cpp
|
| diff --git a/Source/core/rendering/RenderTableSection.cpp b/Source/core/rendering/RenderTableSection.cpp
|
| index dd64e408475da0a47fa7b9d4df4984ceadeacf2d..95be1c543e2c61df2650eb71615421381c936d5e 100644
|
| --- a/Source/core/rendering/RenderTableSection.cpp
|
| +++ b/Source/core/rendering/RenderTableSection.cpp
|
| @@ -324,10 +324,14 @@ int RenderTableSection::calcRowLogicalHeight()
|
| if (baselinePosition > cell->borderBefore() + cell->paddingBefore()) {
|
| m_grid[cellStartRow].baseline = max(m_grid[cellStartRow].baseline, baselinePosition);
|
| // The descent of a cell that spans multiple rows does not affect the height of the first row it spans, so don't let it
|
| - // become the baseline descent applied to the rest of the row.
|
| - if (cell->rowSpan() == 1)
|
| + // become the baseline descent applied to the rest of the row. Also we don't account for the baseline descent of
|
| + // non-spanning cells when computing a spanning cell's extent.
|
| + int cellStartRowBaselineDescent = 0;
|
| + if (cell->rowSpan() == 1) {
|
| baselineDescent = max(baselineDescent, cellLogicalHeight - (baselinePosition - cell->intrinsicPaddingBefore()));
|
| - m_rowPos[cellStartRow + 1] = max<int>(m_rowPos[cellStartRow + 1], m_rowPos[cellStartRow] + m_grid[cellStartRow].baseline + baselineDescent);
|
| + cellStartRowBaselineDescent = baselineDescent;
|
| + }
|
| + m_rowPos[cellStartRow + 1] = max<int>(m_rowPos[cellStartRow + 1], m_rowPos[cellStartRow] + m_grid[cellStartRow].baseline + cellStartRowBaselineDescent);
|
| }
|
| }
|
| }
|
|
|