From 0019b901a057f825ba1732ceebd98f6d31d03308 Mon Sep 17 00:00:00 2001 From: Aliaksandr Kalenik Date: Fri, 4 Aug 2023 12:24:12 +0200 Subject: [PATCH] LibWeb: Remove hardcoded span = 2 while sizing spanning items in GFC --- .../Layout/expected/grid/grid-span-4.txt | 21 +++++++++++++++++++ .../LibWeb/Layout/input/grid/grid-span-4.html | 16 ++++++++++++++ .../LibWeb/Layout/GridFormattingContext.cpp | 5 ++--- 3 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 Tests/LibWeb/Layout/expected/grid/grid-span-4.txt create mode 100644 Tests/LibWeb/Layout/input/grid/grid-span-4.html diff --git a/Tests/LibWeb/Layout/expected/grid/grid-span-4.txt b/Tests/LibWeb/Layout/expected/grid/grid-span-4.txt new file mode 100644 index 0000000000..aa63972f80 --- /dev/null +++ b/Tests/LibWeb/Layout/expected/grid/grid-span-4.txt @@ -0,0 +1,21 @@ +Viewport <#document> at (0,0) content-size 800x600 children: not-inline + BlockContainer at (1,1) content-size 798x65.640625 [BFC] children: not-inline + Box at (10,10) content-size 780x47.640625 [GFC] children: not-inline + BlockContainer at (11,11) content-size 778x21.8125 [BFC] children: inline + line 0 width: 33.9375, height: 21.828125, bottom: 21.828125, baseline: 16.890625 + frag 0 from TextNode start: 0, length: 3, rect: [11,11 33.9375x21.828125] + "foo" + TextNode <#text> + BlockContainer at (11,34.8125) content-size 778x21.828125 [BFC] children: inline + line 0 width: 34.546875, height: 21.828125, bottom: 21.828125, baseline: 16.890625 + frag 0 from TextNode start: 0, length: 3, rect: [11,34.8125 34.546875x21.828125] + "bar" + TextNode <#text> + +PaintableWithLines (Viewport<#document>) [0,0 800x600] + PaintableWithLines (BlockContainer) [0,0 800x67.640625] + PaintableBox (Box) [9,9 782x49.640625] + PaintableWithLines (BlockContainer
.foo) [10,10 780x23.8125] overflow: [11,11 778x21.828125] + TextPaintable (TextNode<#text>) + PaintableWithLines (BlockContainer
.bar) [10,33.8125 780x23.828125] + TextPaintable (TextNode<#text>) \ No newline at end of file diff --git a/Tests/LibWeb/Layout/input/grid/grid-span-4.html b/Tests/LibWeb/Layout/input/grid/grid-span-4.html new file mode 100644 index 0000000000..a97a3b8c85 --- /dev/null +++ b/Tests/LibWeb/Layout/input/grid/grid-span-4.html @@ -0,0 +1,16 @@ +
foo
bar
\ No newline at end of file diff --git a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp index 6aa935f5a8..ca0634789a 100644 --- a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp @@ -754,9 +754,8 @@ void GridFormattingContext::resolve_intrinsic_track_sizes(AvailableSpace const& size_t max_item_span = 1; for (auto& item : m_grid_items) max_item_span = max(item.span(dimension), max_item_span); - for (size_t span = 2; span <= max_item_span; span++) { - increase_sizes_to_accommodate_spanning_items_crossing_content_sized_tracks(available_space, dimension, 2); - } + for (size_t span = 2; span <= max_item_span; span++) + increase_sizes_to_accommodate_spanning_items_crossing_content_sized_tracks(available_space, dimension, span); // 4. Increase sizes to accommodate spanning items crossing flexible tracks: Next, repeat the previous // step instead considering (together, rather than grouped by span size) all items that do span a