From 00f8b5a911d17d29db56c7d5373e37e64dffae57 Mon Sep 17 00:00:00 2001 From: Aliaksandr Kalenik Date: Thu, 26 Jan 2023 13:40:46 +0300 Subject: LibWeb: Ignore only anonymous blocks in block auto height calculation Previously block auto height calculation was changed to skip boxes with collapsed margins and then condition to skip anonymous boxes with no lines was also removed in 6c5ba10bb025e863a0567c5b1f6110f2b0233108 to avoid skipping anonymous wrappers of tables. Skipping boxes with collapsed margins (currently it's check that height is 0) is wrong because it makes empty boxes with clearance to be skipped which is not correct while anonymous boxes with no lines should be skipped and it's no longer causes problems with tables (fixed in 87f0e835eb7fee2af95a365f29113f315571a755) --- Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Userland/Libraries/LibWeb') diff --git a/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp index 620e79f980..e7b1940bd0 100644 --- a/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp @@ -432,9 +432,9 @@ CSSPixels BlockFormattingContext::compute_auto_height_for_block_level_element(Bo auto const& child_box_state = m_state.get(*child_box); - if (margins_collapse_through(*child_box, m_state)) { + // Ignore anonymous block containers with no lines. These don't count as in-flow block boxes. + if (child_box->is_anonymous() && child_box->is_block_container() && child_box_state.line_boxes.is_empty()) continue; - } auto margin_bottom = m_margin_state.current_collapsed_margin(); if (box_state.padding_bottom == 0 && box_state.border_bottom == 0) { -- cgit v1.2.3