diff --git a/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp index fe2f1a82aa..5dcd1dcfde 100644 --- a/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp @@ -817,7 +817,7 @@ FormattingState::IntrinsicSizes FormattingContext::calculate_intrinsic_sizes(Lay independent_formatting_context->run(box, LayoutMode::MaxContent); cached_box_sizes.max_content_size.set_width(independent_formatting_context->greatest_child_width(box)); - cached_box_sizes.max_content_size.set_height(BlockFormattingContext::compute_theoretical_height(throwaway_state, box)); + cached_box_sizes.max_content_size.set_height(compute_intrinsic_height(throwaway_state, box)); } { @@ -829,7 +829,7 @@ FormattingState::IntrinsicSizes FormattingContext::calculate_intrinsic_sizes(Lay VERIFY(independent_formatting_context); independent_formatting_context->run(box, LayoutMode::MinContent); cached_box_sizes.min_content_size.set_width(independent_formatting_context->greatest_child_width(box)); - cached_box_sizes.min_content_size.set_height(BlockFormattingContext::compute_theoretical_height(throwaway_state, box)); + cached_box_sizes.min_content_size.set_height(compute_intrinsic_height(throwaway_state, box)); } if (cached_box_sizes.min_content_size.width() > cached_box_sizes.max_content_size.width()) { @@ -888,4 +888,13 @@ float FormattingContext::calculate_fit_content_height(Layout::Box const& box, Op auto [min_content_size, max_content_size] = calculate_min_and_max_content_height(box); return calculate_fit_content_size(min_content_size, max_content_size, available_space); } + +float FormattingContext::compute_intrinsic_height(FormattingState const& state, Box const& box) +{ + if (is(box)) { + return compute_height_for_replaced_element(state, verify_cast(box)); + } + + return compute_auto_height_for_block_level_element(state, box); +} } diff --git a/Userland/Libraries/LibWeb/Layout/FormattingContext.h b/Userland/Libraries/LibWeb/Layout/FormattingContext.h index 45455add5c..da0a787241 100644 --- a/Userland/Libraries/LibWeb/Layout/FormattingContext.h +++ b/Userland/Libraries/LibWeb/Layout/FormattingContext.h @@ -81,6 +81,7 @@ protected: static float tentative_height_for_replaced_element(FormattingState const&, ReplacedBox const&, CSS::Length const& height); static float compute_auto_height_for_block_formatting_context_root(FormattingState const&, BlockContainer const&); static float compute_auto_height_for_block_level_element(FormattingState const&, Box const&); + static float compute_intrinsic_height(FormattingState const& state, Box const& box); ShrinkToFitResult calculate_shrink_to_fit_widths(Box const&);