1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 16:17:45 +00:00

LibWeb: Use automatic width to resolve min/max-width for inline boxes

This commit is contained in:
Aliaksandr Kalenik 2023-08-09 17:12:00 +02:00 committed by Andreas Kling
parent b34b0a1cd3
commit 5003b1a421
4 changed files with 42 additions and 10 deletions

View file

@ -515,8 +515,9 @@ void BlockFormattingContext::layout_inline_children(BlockContainer const& block_
// NOTE: min-width or max-width for boxes with inline children can only be applied after inside layout
// is done and width of box content is known
auto used_width_px = context.automatic_content_width();
auto available_width = AvailableSize::make_definite(used_width_px);
if (!should_treat_max_width_as_none(block_container, available_space.width)) {
auto max_width_px = calculate_inner_width(block_container, available_space.width, block_container.computed_values().max_width()).to_px(block_container);
auto max_width_px = calculate_inner_width(block_container, available_width, block_container.computed_values().max_width()).to_px(block_container);
if (used_width_px > max_width_px)
used_width_px = max_width_px;
}
@ -535,7 +536,7 @@ void BlockFormattingContext::layout_inline_children(BlockContainer const& block_
return false;
}();
if (!should_treat_min_width_as_auto) {
auto min_width_px = calculate_inner_width(block_container, available_space.width, block_container.computed_values().min_width()).to_px(block_container);
auto min_width_px = calculate_inner_width(block_container, available_width, block_container.computed_values().min_width()).to_px(block_container);
if (used_width_px < min_width_px)
used_width_px = min_width_px;
}