1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 18:28:12 +00:00

LibWeb: Remove duplicated code in grid auto track counting

This refactoring simplifies the resolution of minimum and maximum sizes
during the counting of auto tracks.

No changes in behavior are intended.
This commit is contained in:
Aliaksandr Kalenik 2024-01-17 15:29:00 +01:00 committed by Andreas Kling
parent 954c4496b1
commit c254de3509

View file

@ -93,16 +93,23 @@ int GridFormattingContext::count_of_repeated_auto_fill_or_fit_tracks(GridDimensi
auto const& repeat_track_list = track_list.first().repeat().grid_track_size_list().track_list();
for (auto const& explicit_grid_track : repeat_track_list) {
auto const& track_sizing_function = explicit_grid_track;
CSSPixels track_size = 0;
if (track_sizing_function.is_minmax()) {
if (track_sizing_function.minmax().max_grid_size().is_definite() && !track_sizing_function.minmax().min_grid_size().is_definite())
size_of_repeated_tracks += resolve_definite_track_size(track_sizing_function.minmax().max_grid_size(), *m_available_space);
else if (track_sizing_function.minmax().min_grid_size().is_definite() && !track_sizing_function.minmax().max_grid_size().is_definite())
size_of_repeated_tracks += resolve_definite_track_size(track_sizing_function.minmax().min_grid_size(), *m_available_space);
else if (track_sizing_function.minmax().min_grid_size().is_definite() && track_sizing_function.minmax().max_grid_size().is_definite())
size_of_repeated_tracks += min(resolve_definite_track_size(track_sizing_function.minmax().min_grid_size(), *m_available_space), resolve_definite_track_size(track_sizing_function.minmax().max_grid_size(), *m_available_space));
auto const& min_size = track_sizing_function.minmax().min_grid_size();
auto const& max_size = track_sizing_function.minmax().max_grid_size();
if (max_size.is_definite()) {
track_size = resolve_definite_track_size(max_size, *m_available_space);
if (min_size.is_definite())
track_size = min(track_size, resolve_definite_track_size(min_size, *m_available_space));
} else if (min_size.is_definite()) {
track_size = resolve_definite_track_size(min_size, *m_available_space);
} else {
VERIFY_NOT_REACHED();
}
} else {
size_of_repeated_tracks += min(resolve_definite_track_size(track_sizing_function.grid_size(), *m_available_space), resolve_definite_track_size(track_sizing_function.grid_size(), *m_available_space));
track_size = resolve_definite_track_size(track_sizing_function.grid_size(), *m_available_space);
}
size_of_repeated_tracks += track_size;
}
if (size_of_repeated_tracks == 0)