diff options
author | Andreas Kling <kling@serenityos.org> | 2021-10-28 19:17:23 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-10-28 19:20:40 +0200 |
commit | 37f0bd0a42e1090cc61b1a7a480eb0c1ca376dec (patch) | |
tree | 87e9255b3e4a13f710baff0b9cdc641d5574845e /Userland | |
parent | 76fa57713d7db38736c636f571d9d4a0c82b7e3d (diff) | |
download | serenity-37f0bd0a42e1090cc61b1a7a480eb0c1ca376dec.zip |
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.)
Diffstat (limited to 'Userland')
-rw-r--r-- | Userland/Libraries/LibWeb/Layout/FormattingContext.cpp | 7 |
1 files 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<BlockContainer>(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(); |