mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-29 04:09:13 +00:00
LibWeb/Layout: Fix min{max}-content size calculation for grid items
Instead of directly invoking `to_px()`, `calculate_min_content_contribution()` needs to use `calculate_inner_width()` and `calculate_inner_height()`, which are aware of how to correctly handle `min-content` and `max-content` values. Fixes https://github.com/LadybirdBrowser/ladybird/issues/3469
This commit is contained in:
parent
08c155cd3f
commit
23151de217
Notes:
github-actions[bot]
2025-03-15 12:52:10 +00:00
Author: https://github.com/kalenikaliaksandr
Commit: 23151de217
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3946
3 changed files with 37 additions and 5 deletions
|
@ -2438,12 +2438,12 @@ CSSPixels GridFormattingContext::calculate_min_content_contribution(GridItem con
|
|||
}
|
||||
|
||||
auto preferred_size = get_item_preferred_size(item, dimension);
|
||||
if (dimension == GridDimension::Row && preferred_size.is_auto() && item.box->has_preferred_aspect_ratio()) {
|
||||
return m_state.get(item.box).content_width() / item.box->preferred_aspect_ratio().value();
|
||||
if (dimension == GridDimension::Column) {
|
||||
auto width = calculate_inner_width(item.box, m_available_space->width, preferred_size);
|
||||
return min(item.add_margin_box_sizes(width, dimension), maxium_size);
|
||||
}
|
||||
auto containing_block_size = containing_block_size_for_item(item, dimension);
|
||||
auto result = item.add_margin_box_sizes(preferred_size.to_px(grid_container(), containing_block_size), dimension);
|
||||
return min(result, maxium_size);
|
||||
auto height = calculate_inner_height(item.box, *m_available_space, preferred_size);
|
||||
return min(item.add_margin_box_sizes(height, dimension), maxium_size);
|
||||
}
|
||||
|
||||
CSSPixels GridFormattingContext::calculate_max_content_contribution(GridItem const& item, GridDimension const dimension) const
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue