From 1e953f2acc2e8afd9bcf9aa0fa54e9d2b4c2cf60 Mon Sep 17 00:00:00 2001 From: Aliaksandr Kalenik Date: Thu, 3 Aug 2023 16:21:53 +0200 Subject: [PATCH] LibWeb: Reset planned_increase while distributing space to "fr" tracks Fixes bug when planned_increase is not reset after adding it to base_size. --- .../grid/two-items-spanning-one-1fr-row.txt | 21 +++++++++++++++++++ .../grid/two-items-spanning-one-1fr-row.html | 19 +++++++++++++++++ .../LibWeb/Layout/GridFormattingContext.cpp | 1 + 3 files changed, 41 insertions(+) create mode 100644 Tests/LibWeb/Layout/expected/grid/two-items-spanning-one-1fr-row.txt create mode 100644 Tests/LibWeb/Layout/input/grid/two-items-spanning-one-1fr-row.html diff --git a/Tests/LibWeb/Layout/expected/grid/two-items-spanning-one-1fr-row.txt b/Tests/LibWeb/Layout/expected/grid/two-items-spanning-one-1fr-row.txt new file mode 100644 index 0000000000..efb2676e2b --- /dev/null +++ b/Tests/LibWeb/Layout/expected/grid/two-items-spanning-one-1fr-row.txt @@ -0,0 +1,21 @@ +Viewport <#document> at (0,0) content-size 800x600 children: not-inline + BlockContainer at (1,1) content-size 798x120 [BFC] children: not-inline + Box at (10,10) content-size 780x102 [GFC] children: not-inline + BlockContainer at (11,11) content-size 100x100 [BFC] children: inline + line 0 width: 27.15625, height: 17.46875, bottom: 17.46875, baseline: 13.53125 + frag 0 from TextNode start: 0, length: 3, rect: [11,11 27.15625x17.46875] + "foo" + TextNode <#text> + BlockContainer at (11,11) content-size 778x100 [BFC] children: inline + line 0 width: 27.640625, height: 17.46875, bottom: 17.46875, baseline: 13.53125 + frag 0 from TextNode start: 0, length: 3, rect: [11,11 27.640625x17.46875] + "bar" + TextNode <#text> + +PaintableWithLines (Viewport<#document>) [0,0 800x600] + PaintableWithLines (BlockContainer) [0,0 800x122] + PaintableBox (Box) [9,9 782x104] + PaintableWithLines (BlockContainer
.foo) [10,10 102x102] + TextPaintable (TextNode<#text>) + PaintableWithLines (BlockContainer
.bar) [10,10 780x102] + TextPaintable (TextNode<#text>) diff --git a/Tests/LibWeb/Layout/input/grid/two-items-spanning-one-1fr-row.html b/Tests/LibWeb/Layout/input/grid/two-items-spanning-one-1fr-row.html new file mode 100644 index 0000000000..58ef8e0155 --- /dev/null +++ b/Tests/LibWeb/Layout/input/grid/two-items-spanning-one-1fr-row.html @@ -0,0 +1,19 @@ +
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 bc397c113c..6aa935f5a8 100644 --- a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp @@ -1057,6 +1057,7 @@ void GridFormattingContext::increase_sizes_to_accommodate_spanning_items_crossin for (auto& track : spanned_tracks) { track.base_size += track.planned_increase; + track.planned_increase = 0; } // 4. If at this point any track’s growth limit is now less than its base size, increase its growth limit to