LibWeb: Skip calculating item's min-content size if possible [GFC]

We could skip doing item's intrinsic min-content layout if we know for
sure that there's no tracks with intrinsic sizing function to distribute
the min-content size to.
This commit is contained in:
Aliaksandr Kalenik 2025-08-31 17:02:24 +02:00 committed by Alexander Kalenik
commit 7b1a97c109
Notes: github-actions[bot] 2025-08-31 17:14:26 +00:00

View file

@ -942,10 +942,15 @@ void GridFormattingContext::increase_sizes_to_accommodate_spanning_items_crossin
spanned_tracks.append(track);
});
auto item_spans_tracks_with_flexible_sizing_function = any_of(spanned_tracks, [](auto& track) {
return track.max_track_sizing_function.is_flexible_length();
});
if (item_spans_tracks_with_flexible_sizing_function)
bool item_spans_tracks_with_flexible_sizing_function = false;
bool item_spans_tracks_with_intrinsic_sizing_function = false;
for (auto& track : spanned_tracks) {
if (track.max_track_sizing_function.is_flexible_length())
item_spans_tracks_with_flexible_sizing_function = true;
if (track.min_track_sizing_function.is_intrinsic(available_size) || track.max_track_sizing_function.is_intrinsic(available_size))
item_spans_tracks_with_intrinsic_sizing_function = true;
}
if (!item_spans_tracks_with_intrinsic_sizing_function || item_spans_tracks_with_flexible_sizing_function)
continue;
// 1. For intrinsic minimums: First increase the base size of tracks with an intrinsic min track sizing