1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 04:27:43 +00:00

LibWeb: Always pass some available space to flex item fit-content sizing

Same deal as flex item intrinsic sizing: if we have definite size for
the item, use that, otherwise fall back to the available space.
This commit is contained in:
Andreas Kling 2023-01-25 14:16:25 +01:00
parent 0bbc54c200
commit 61d65294fa

View file

@ -1862,14 +1862,20 @@ CSSPixels FlexFormattingContext::calculate_max_content_main_size(FlexItem const&
CSSPixels FlexFormattingContext::calculate_fit_content_main_size(FlexItem const& item) const
{
return is_row_layout() ? calculate_fit_content_width(item.box, m_available_space_for_items->space)
: calculate_fit_content_height(item.box, m_available_space_for_items->space);
if (is_row_layout())
return calculate_fit_content_width(item.box, m_available_space_for_items->space);
if (item.cross_size.has_value())
return calculate_fit_content_height(item.box, AvailableSpace(AvailableSize::make_definite(item.cross_size.value()), m_available_space_for_items->space.height));
return calculate_fit_content_height(item.box, m_available_space_for_items->space);
}
CSSPixels FlexFormattingContext::calculate_fit_content_cross_size(FlexItem const& item) const
{
return !is_row_layout() ? calculate_fit_content_width(item.box, m_available_space_for_items->space)
: calculate_fit_content_height(item.box, m_available_space_for_items->space);
if (!is_row_layout())
return calculate_fit_content_width(item.box, m_available_space_for_items->space);
if (item.main_size.has_value())
return calculate_fit_content_height(item.box, AvailableSpace(AvailableSize::make_definite(item.main_size.value()), m_available_space_for_items->space.height));
return calculate_fit_content_height(item.box, m_available_space_for_items->space);
}
CSSPixels FlexFormattingContext::calculate_min_content_cross_size(FlexItem const& item) const