1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:38:11 +00:00

LibWeb: Take used width into account for flex item intrinsic heights

If we've already established the used width for a flex item, we need
to take it into account when calculating the min-content and max-content
heights for that item.

We were already doing this when calculating cross sizes. This patch adds
the same consideration for main sizes.
This commit is contained in:
Andreas Kling 2023-01-15 17:51:30 +01:00
parent 00f8b5a911
commit 1ea276bf6d

View file

@ -1846,7 +1846,18 @@ CSSPixels FlexFormattingContext::calculate_cross_max_content_contribution(FlexIt
CSSPixels FlexFormattingContext::calculate_min_content_main_size(FlexItem const& item) const
{
return is_row_layout() ? calculate_min_content_width(item.box) : calculate_min_content_height(item.box, m_available_space_for_items->space.width);
if (is_row_layout()) {
return calculate_min_content_width(item.box);
}
return calculate_min_content_height(item.box, item.cross_size.has_value() ? AvailableSize::make_definite(item.cross_size.value()) : AvailableSize::make_indefinite());
}
CSSPixels FlexFormattingContext::calculate_max_content_main_size(FlexItem const& item) const
{
if (is_row_layout()) {
return calculate_max_content_width(item.box);
}
return calculate_max_content_height(item.box, item.cross_size.has_value() ? AvailableSize::make_definite(item.cross_size.value()) : AvailableSize::make_indefinite());
}
CSSPixels FlexFormattingContext::calculate_fit_content_main_size(FlexItem const& item) const
@ -1861,11 +1872,6 @@ CSSPixels FlexFormattingContext::calculate_fit_content_cross_size(FlexItem const
: calculate_fit_content_height(item.box, m_available_space_for_items->space);
}
CSSPixels FlexFormattingContext::calculate_max_content_main_size(FlexItem const& item) const
{
return is_row_layout() ? calculate_max_content_width(item.box) : calculate_max_content_height(item.box, m_available_space_for_items->space.width);
}
CSSPixels FlexFormattingContext::calculate_min_content_cross_size(FlexItem const& item) const
{
if (is_row_layout()) {