LibWeb: Always add "ending" line during lines init in GFC

This moves us a bit toward correctly representing two separate concepts
from the spec: lines and tracks. Lines divide the grid into tracks, so
there should always be a line concluding the last track.
This commit is contained in:
Aliaksandr Kalenik 2024-01-08 03:16:19 +01:00 committed by Andreas Kling
parent 9c3bb94d14
commit 92bf7d3ba7

View file

@ -1412,8 +1412,8 @@ void GridFormattingContext::place_grid_items()
{
auto grid_template_columns = grid_container().computed_values().grid_template_columns();
auto grid_template_rows = grid_container().computed_values().grid_template_rows();
auto column_count = m_column_lines.size();
auto row_count = m_row_lines.size();
auto column_tracks_count = m_column_lines.size() - 1;
auto row_tracks_count = m_row_lines.size() - 1;
// https://drafts.csswg.org/css-grid/#overview-placement
// 2.2. Placing Items
@ -1437,7 +1437,7 @@ void GridFormattingContext::place_grid_items()
return IterationDecision::Continue;
});
m_occupation_grid = OccupationGrid(column_count, row_count);
m_occupation_grid = OccupationGrid(column_tracks_count, row_tracks_count);
build_grid_areas();
@ -1930,8 +1930,8 @@ void GridFormattingContext::run(Box const&, LayoutMode, AvailableSpace const& av
auto const& grid_computed_values = grid_container().computed_values();
// NOTE: We store explicit grid sizes to later use in determining the position of items with negative index.
m_explicit_columns_line_count = m_column_lines.size() + 1;
m_explicit_rows_line_count = m_row_lines.size() + 1;
m_explicit_columns_line_count = m_column_lines.size();
m_explicit_rows_line_count = m_row_lines.size();
place_grid_items();
@ -2294,8 +2294,7 @@ void GridFormattingContext::init_grid_lines(GridDimension dimension)
};
expand_lines_definition(lines_definition);
if (line_names.size() > 0)
lines.append({ .names = line_names });
lines.append({ .names = line_names });
}
void OccupationGrid::set_occupied(int column_start, int column_end, int row_start, int row_end)