diff --git a/Tests/LibWeb/Layout/expected/table/zero-columns-gridmax.txt b/Tests/LibWeb/Layout/expected/table/zero-columns-gridmax.txt new file mode 100644 index 0000000000..22f0923aa2 --- /dev/null +++ b/Tests/LibWeb/Layout/expected/table/zero-columns-gridmax.txt @@ -0,0 +1,7 @@ +Viewport <#document> at (0,0) content-size 800x600 children: not-inline + BlockContainer at (0,0) content-size 800x16 children: not-inline + BlockContainer at (8,8) content-size 784x0 children: not-inline + TableWrapper <(anonymous)> at (8,8) content-size 200x0 children: not-inline + TableBox at (8,8) content-size 200x0 children: not-inline + TableRowBox at (8,8) content-size 200x0 children: not-inline + TableCellBox at (8,8) content-size 200x0 children: not-inline diff --git a/Tests/LibWeb/Layout/input/table/zero-columns-gridmax.html b/Tests/LibWeb/Layout/input/table/zero-columns-gridmax.html new file mode 100644 index 0000000000..63bfe96918 --- /dev/null +++ b/Tests/LibWeb/Layout/input/table/zero-columns-gridmax.html @@ -0,0 +1,15 @@ + +
\ No newline at end of file diff --git a/Userland/Libraries/LibWeb/Layout/TableFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/TableFormattingContext.cpp index 354502fb3a..c3c565f24c 100644 --- a/Userland/Libraries/LibWeb/Layout/TableFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/TableFormattingContext.cpp @@ -358,8 +358,17 @@ void TableFormattingContext::distribute_width_to_columns() } auto width_to_distribute = available_width - columns_total_used_width(); - for (auto& column : m_columns) { - column.used_width += width_to_distribute * column.max_width / grid_max; + if (grid_max == 0) { + // If total max width of columns is zero then divide distributable width equally among them + auto column_width = width_to_distribute / m_columns.size(); + for (auto& column : m_columns) { + column.used_width = column_width; + } + } else { + // Distribute width to columns proportionally to their max width + for (auto& column : m_columns) { + column.used_width += width_to_distribute * column.max_width / grid_max; + } } } }