summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Libraries/LibWeb/Layout/LayoutTableRow.cpp13
-rw-r--r--Libraries/LibWeb/Layout/LayoutTableRowGroup.cpp1
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();
});