LibWeb: Skip non-spanning items sizing if there are no such items

Otherwise base_size and growth_limit for tracks that do not have any
spanning items will be overriden with wrong values.
This commit is contained in:
Aliaksandr Kalenik 2023-05-16 16:15:08 +03:00 committed by Andreas Kling
parent 95d17ee875
commit 5f2264a2bd
Notes: sideshowbarker 2024-07-17 04:49:48 +09:00
3 changed files with 28 additions and 0 deletions

View File

@ -0,0 +1,6 @@
Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <html> at (0,0) content-size 800x600 [BFC] children: not-inline
BlockContainer <body> at (8,8) content-size 784x100 children: not-inline
Box <div.grid> at (8,8) content-size 100x100 [GFC] children: not-inline
BlockContainer <div.test> at (8,8) content-size 500x100 [BFC] children: not-inline
BlockContainer <div.big-child> at (8,8) content-size 500x100 children: not-inline

View File

@ -0,0 +1,17 @@
<style>
.grid {
display: grid;
grid-template-columns: auto auto;
height: 100px;
width: 100px;
}
.test {
grid-column: 1 / span 2;
grid-row: 1;
background: red;
}
.big-child {
width: 500px;
height: 100px;
}
</style><div class="grid"><div class="test"><div class="big-child"></div></div></div>

View File

@ -728,6 +728,11 @@ void GridFormattingContext::resolve_intrinsic_track_sizes(AvailableSpace const&
}
}
if (grid_items_of_track.size() == 0) {
++index;
continue;
}
if (!track.min_track_sizing_function.is_intrinsic_track_sizing() && !track.max_track_sizing_function.is_intrinsic_track_sizing()) {
++index;
continue;