From 37f0bd0a42e1090cc61b1a7a480eb0c1ca376dec Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 28 Oct 2021 19:17:23 +0200 Subject: [PATCH] LibWeb: Small fix to height computation for block-with-inline-children We now compute the used height of height:auto by measuring from the top content edge (y=0) to the bottom of the bottommost line box within the block container. This fixes an issue where we'd fail to account for the topmost line box being taller than any of its fragments (which can happen if the line-height is greater than the height of all fragments on the line.) --- Userland/Libraries/LibWeb/Layout/FormattingContext.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp index fc5f8ce096..871d85abbc 100644 --- a/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp @@ -194,13 +194,10 @@ float FormattingContext::compute_auto_height_for_block_level_element(Box const& if (box.children_are_inline()) { // If it only has inline-level children, the height is the distance between - // the top of the topmost line box and the bottom of the bottommost line box. + // the top content edge and the bottom of the bottommost line box. auto& block_container = verify_cast(box); + top = 0; if (!block_container.line_boxes().is_empty()) { - for (auto& fragment : block_container.line_boxes().first().fragments()) { - if (!top.has_value() || fragment.offset().y() < top.value()) - top = fragment.offset().y(); - } for (auto& fragment : block_container.line_boxes().last().fragments()) { if (!bottom.has_value() || (fragment.offset().y() + fragment.height()) > bottom.value()) bottom = fragment.offset().y() + fragment.height();