Index: Source/core/layout/LayoutTableSection.cpp |
diff --git a/Source/core/layout/LayoutTableSection.cpp b/Source/core/layout/LayoutTableSection.cpp |
index 34c709e8ef2d19ebda472fe4f9cfa77750ce14db..6519b756dd9f3d8cae1dc7186db6267237737bb8 100644 |
--- a/Source/core/layout/LayoutTableSection.cpp |
+++ b/Source/core/layout/LayoutTableSection.cpp |
@@ -723,8 +723,14 @@ int LayoutTableSection::calcRowLogicalHeight() |
m_grid[r].baseline = -1; |
LayoutUnit baselineDescent = 0; |
- // Our base size is the biggest logical height from our cells' styles (excluding row spanning cells). |
- m_rowPos[r + 1] = std::max(m_rowPos[r] + minimumValueForLength(m_grid[r].logicalHeight, 0).round(), 0); |
+ if (m_grid[r].logicalHeight.isSpecified()) { |
+ // Our base size is the biggest logical height from our cells' styles (excluding row spanning cells). |
+ m_rowPos[r + 1] = std::max(m_rowPos[r] + minimumValueForLength(m_grid[r].logicalHeight, 0).round(), 0); |
+ } else { |
+ // Non-specified lengths are ignored because the row already accounts for the cells |
+ // intrinsic logical height. |
+ m_rowPos[r + 1] = std::max(m_rowPos[r], 0); |
+ } |
Row& row = m_grid[r].row; |
unsigned totalCols = row.size(); |