LibWeb: Allow layout nodes to have multiple paintables

CSS fragmentation implies 1:N relationship between layout nodes and
paintables. This change is a preparation for implementation of inline
fragmentation where InlinePaintable will be replaced with
PaintableWithLines corresponding to each line.
This commit is contained in:
Aliaksandr Kalenik 2024-10-14 16:07:56 +02:00 committed by Alexander Kalenik
commit 7d22b1c5c8
Notes: github-actions[bot] 2024-10-16 18:26:52 +00:00
16 changed files with 90 additions and 30 deletions

View file

@ -309,7 +309,7 @@ void TreeBuilder::create_layout_tree(DOM::Node& dom_node, TreeBuilder::Context&
if (!layout_node) {
dom_node.for_each_in_inclusive_subtree([&](auto& node) {
node.detach_layout_node({});
node.set_paintable(nullptr);
node.clear_paintable();
if (is<DOM::Element>(node))
static_cast<DOM::Element&>(node).clear_pseudo_element_nodes({});
return TraversalDecision::Continue;