diff --git a/Userland/Libraries/LibWeb/Layout/LayoutState.cpp b/Userland/Libraries/LibWeb/Layout/LayoutState.cpp index c88a021ce3..4db316074a 100644 --- a/Userland/Libraries/LibWeb/Layout/LayoutState.cpp +++ b/Userland/Libraries/LibWeb/Layout/LayoutState.cpp @@ -198,18 +198,19 @@ void LayoutState::resolve_relative_positions(Vector(*node.paintable()); - if (parent_paintable) { - VERIFY(!paintable.parent()); - parent_paintable->append_child(paintable); + Painting::Paintable* paintable = nullptr; + if (node.paintable()) { + paintable = const_cast(node.paintable()); + if (parent_paintable) { + VERIFY(!paintable->parent()); + parent_paintable->append_child(*paintable); + } + paintable->set_dom_node(node.dom_node()); + if (node.dom_node()) + node.dom_node()->set_paintable(paintable); } - paintable.set_dom_node(node.dom_node()); - if (node.dom_node()) - node.dom_node()->set_paintable(&paintable); for (auto* child = node.first_child(); child; child = child->next_sibling()) { - build_paint_tree(*child, &paintable); + build_paint_tree(*child, paintable); } }