diff options
-rw-r--r-- | Libraries/LibWeb/Layout/LayoutTableRow.cpp | 13 | ||||
-rw-r--r-- | Libraries/LibWeb/Layout/LayoutTableRowGroup.cpp | 1 |
2 files changed, 12 insertions, 2 deletions
diff --git a/Libraries/LibWeb/Layout/LayoutTableRow.cpp b/Libraries/LibWeb/Layout/LayoutTableRow.cpp index 44f9209783..e241e642de 100644 --- a/Libraries/LibWeb/Layout/LayoutTableRow.cpp +++ b/Libraries/LibWeb/Layout/LayoutTableRow.cpp @@ -39,9 +39,18 @@ LayoutTableRow::~LayoutTableRow() { } -void LayoutTableRow::layout(LayoutMode layout_mode) +void LayoutTableRow::layout(LayoutMode) { - LayoutBox::layout(layout_mode); + float tallest_cell_height = 0; + float content_width = 0; + for_each_child_of_type<LayoutTableCell>([&](auto& cell) { + cell.layout(LayoutMode::OnlyRequiredLineBreaks); + cell.set_offset(effective_offset().translated(content_width, 0)); + content_width += cell.width(); + tallest_cell_height = max(tallest_cell_height, cell.height()); + }); + set_width(content_width); + set_height(tallest_cell_height); } LayoutTableCell* LayoutTableRow::first_cell() diff --git a/Libraries/LibWeb/Layout/LayoutTableRowGroup.cpp b/Libraries/LibWeb/Layout/LayoutTableRowGroup.cpp index 0f60749847..1ae56218a0 100644 --- a/Libraries/LibWeb/Layout/LayoutTableRowGroup.cpp +++ b/Libraries/LibWeb/Layout/LayoutTableRowGroup.cpp @@ -49,6 +49,7 @@ void LayoutTableRowGroup::layout(LayoutMode layout_mode) float content_height = 0; for_each_child_of_type<LayoutTableRow>([&](auto& row) { + row.set_offset(0, content_height); row.layout(layout_mode); content_height += row.height(); }); |