From 338fa8261e4f38737e850c3164cb9c24e2a92080 Mon Sep 17 00:00:00 2001 From: Aliaksandr Kalenik Date: Tue, 1 Aug 2023 16:52:48 +0300 Subject: [PATCH] LibWeb: Use item minimum contribution while sizing "fr" track in GFC Fixes the issue that before "automatic minimum size" were used to size flexible tracks even though specification says is should be "minimum contribution" --- Tests/LibWeb/Layout/expected/grid/row-1fr.txt | 4 ++++ Tests/LibWeb/Layout/input/grid/row-1fr.html | 15 +++++++++++++++ .../LibWeb/Layout/GridFormattingContext.cpp | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 Tests/LibWeb/Layout/expected/grid/row-1fr.txt create mode 100644 Tests/LibWeb/Layout/input/grid/row-1fr.html diff --git a/Tests/LibWeb/Layout/expected/grid/row-1fr.txt b/Tests/LibWeb/Layout/expected/grid/row-1fr.txt new file mode 100644 index 0000000000..7b1f32010b --- /dev/null +++ b/Tests/LibWeb/Layout/expected/grid/row-1fr.txt @@ -0,0 +1,4 @@ +Viewport <#document> at (0,0) content-size 800x600 children: not-inline + BlockContainer at (1,1) content-size 798x70 [BFC] children: not-inline + Box at (10,10) content-size 200x52 [GFC] children: not-inline + BlockContainer at (11,11) content-size 100x50 [BFC] children: not-inline diff --git a/Tests/LibWeb/Layout/input/grid/row-1fr.html b/Tests/LibWeb/Layout/input/grid/row-1fr.html new file mode 100644 index 0000000000..c1487f57a2 --- /dev/null +++ b/Tests/LibWeb/Layout/input/grid/row-1fr.html @@ -0,0 +1,15 @@ +
\ No newline at end of file diff --git a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp index edf3a2b586..bc397c113c 100644 --- a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp @@ -1049,7 +1049,7 @@ void GridFormattingContext::increase_sizes_to_accommodate_spanning_items_crossin // 1. For intrinsic minimums: First increase the base size of tracks with an intrinsic min track sizing // function by distributing extra space as needed to accommodate these items’ minimum contributions. - auto item_minimum_contribution = automatic_minimum_size(item, dimension); + auto item_minimum_contribution = calculate_minimum_contribution(item, dimension); distribute_extra_space_across_spanned_tracks_base_size(dimension, item_minimum_contribution, SpaceDistributionPhase::AccommodateMinimumContribution, spanned_tracks, [&](GridTrack const& track) { return track.min_track_sizing_function.is_flexible_length();