mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-05-01 08:48:49 +00:00
LibWeb: Fix percentage insets resolution for grid items
compute_inset() was incorrectly retrieving the containing block size because containing_block() is unaware of grid areas that form a containing block for grid items but do not exist in the layout tree. With this change, we explicitly pass the containing block into compute_inset(), allowing it to correctly provide the containing block sizes for grid items.
This commit is contained in:
parent
07d8ddb5fa
commit
a8c1d12e84
Notes:
github-actions[bot]
2024-11-11 19:21:44 +00:00
Author: https://github.com/kalenikaliaksandr
Commit: a8c1d12e84
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2285
9 changed files with 102 additions and 12 deletions
|
@ -2060,8 +2060,9 @@ void GridFormattingContext::run(AvailableSpace const& available_space)
|
|||
for (auto& grid_item : m_grid_items) {
|
||||
auto& grid_item_box_state = m_state.get_mutable(grid_item.box);
|
||||
CSSPixelPoint margin_offset = { grid_item_box_state.margin_box_left(), grid_item_box_state.margin_box_top() };
|
||||
grid_item_box_state.offset = get_grid_area_rect(grid_item).top_left() + margin_offset;
|
||||
compute_inset(grid_item.box);
|
||||
auto const grid_area_rect = get_grid_area_rect(grid_item);
|
||||
grid_item_box_state.offset = grid_area_rect.top_left() + margin_offset;
|
||||
compute_inset(grid_item.box, grid_area_rect.size());
|
||||
|
||||
auto available_space_for_children = AvailableSpace(AvailableSize::make_definite(grid_item_box_state.content_width()), AvailableSize::make_definite(grid_item_box_state.content_height()));
|
||||
if (auto independent_formatting_context = layout_inside(grid_item.box, LayoutMode::Normal, available_space_for_children))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue