From db19570b94b1a0d4596eb116ecf859d6b7e0c422 Mon Sep 17 00:00:00 2001 From: martinfalisse Date: Sat, 24 Sep 2022 17:43:34 +0200 Subject: [PATCH] LibWeb: Truncate oversized grid spans If a span makes a CSS Grid item overflow vertically, then it should be truncated as done on other web engines. --- Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp index f135854a8d..c5ed04b64a 100644 --- a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp @@ -1130,8 +1130,10 @@ void GridFormattingContext::run(Box const& box, LayoutMode, AvailableSpace const child_box_state.offset = { x_start, y_start }; }; - for (auto& positioned_box : positioned_boxes) - layout_box(positioned_box.row, positioned_box.row + positioned_box.row_span, positioned_box.column, positioned_box.column + positioned_box.column_span, positioned_box.box); + for (auto& positioned_box : positioned_boxes) { + auto resolved_span = positioned_box.row + positioned_box.row_span > static_cast(grid_rows.size()) ? static_cast(grid_rows.size()) - positioned_box.row : positioned_box.row_span; + layout_box(positioned_box.row, positioned_box.row + resolved_span, positioned_box.column, positioned_box.column + positioned_box.column_span, positioned_box.box); + } float total_y = 0; for (auto& grid_row : grid_rows)