From 561beb5e95a31ab6021d37dd3cfd0e5f686919a5 Mon Sep 17 00:00:00 2001 From: MacDue Date: Sat, 4 May 2024 17:02:18 +0100 Subject: [PATCH] LibWeb: Move SVG mask/clip layout node creation under DOM::Element This is a non-functional change, but makes it clearer other element properties (like `display=none`) apply to these too. --- .../Libraries/LibWeb/Layout/TreeBuilder.cpp | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Userland/Libraries/LibWeb/Layout/TreeBuilder.cpp b/Userland/Libraries/LibWeb/Layout/TreeBuilder.cpp index 382b7883ae2..dd157a6f6d6 100644 --- a/Userland/Libraries/LibWeb/Layout/TreeBuilder.cpp +++ b/Userland/Libraries/LibWeb/Layout/TreeBuilder.cpp @@ -340,7 +340,18 @@ void TreeBuilder::create_layout_tree(DOM::Node& dom_node, TreeBuilder::Context& display = style->display(); if (display.is_none()) return; - layout_node = element.create_layout_node(*style); + if (context.layout_svg_mask_or_clip_path) { + if (is(dom_node)) + layout_node = document.heap().allocate_without_realm(document, static_cast(dom_node), *style); + else if (is(dom_node)) + layout_node = document.heap().allocate_without_realm(document, static_cast(dom_node), *style); + else + VERIFY_NOT_REACHED(); + // Only layout direct uses of SVG masks/clipPaths. + context.layout_svg_mask_or_clip_path = false; + } else { + layout_node = element.create_layout_node(*style); + } } else if (is(dom_node)) { style = style_computer.create_document_style(); display = style->display(); @@ -350,17 +361,6 @@ void TreeBuilder::create_layout_tree(DOM::Node& dom_node, TreeBuilder::Context& display = CSS::Display(CSS::DisplayOutside::Inline, CSS::DisplayInside::Flow); } - if (context.layout_svg_mask_or_clip_path) { - if (is(dom_node)) - layout_node = document.heap().allocate_without_realm(document, static_cast(dom_node), *style); - else if (is(dom_node)) - layout_node = document.heap().allocate_without_realm(document, static_cast(dom_node), *style); - else - VERIFY_NOT_REACHED(); - // Only layout direct uses of SVG masks/clipPaths. - context.layout_svg_mask_or_clip_path = false; - } - if (!layout_node) return;