From b6ab9a261f21087f0991d952c1a2af7bb17305a9 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 6 Oct 2022 21:03:30 +0200 Subject: [PATCH] LibWeb: Make TreeBuilder treat inline-flex's children correctly We were skipping over inline flex containers when looking for an insertion parent. This made us not generate flex items in those cases. This commit changes the behavior, so that non-inline-level items can get inserted into an inline-outside parent, as long as the parent isn't just flow-inside. --- Userland/Libraries/LibWeb/Layout/TreeBuilder.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/Layout/TreeBuilder.cpp b/Userland/Libraries/LibWeb/Layout/TreeBuilder.cpp index 937ea030de..1d03275044 100644 --- a/Userland/Libraries/LibWeb/Layout/TreeBuilder.cpp +++ b/Userland/Libraries/LibWeb/Layout/TreeBuilder.cpp @@ -124,7 +124,9 @@ void TreeBuilder::insert_node_into_inline_or_block_ancestor(Layout::Node& node, // Non-inlines can't be inserted into an inline parent, so find the nearest non-inline ancestor. auto& nearest_non_inline_ancestor = [&]() -> Layout::NodeWithStyle& { for (auto& ancestor : m_ancestor_stack.in_reverse()) { - if (!ancestor.is_inline() || ancestor.is_inline_block()) + if (!ancestor.display().is_inline_outside()) + return ancestor; + if (!ancestor.display().is_flow_inside()) return ancestor; } VERIFY_NOT_REACHED();