LibHTML: Move layout tree building to a separate function.

This commit is contained in:
Andreas Kling 2019-07-08 07:24:15 +02:00
parent 9526b0e13a
commit 0ccad4208f
Notes: sideshowbarker 2024-07-19 13:23:02 +09:00
2 changed files with 12 additions and 7 deletions

View file

@ -52,13 +52,8 @@ RefPtr<StyledNode> Frame::generate_style_tree()
return styled_root;
}
void Frame::layout()
RefPtr<LayoutNode> Frame::generate_layout_tree(const StyledNode& styled_root)
{
if (!m_document)
return;
auto styled_root = generate_style_tree();
auto create_layout_node = [](const StyledNode& styled_node) -> RefPtr<LayoutNode> {
if (styled_node.node() && styled_node.node()->is_document())
return adopt(*new LayoutDocument(static_cast<const Document&>(*styled_node.node()), styled_node));
@ -88,7 +83,16 @@ void Frame::layout()
return layout_node;
};
auto layout_root = resolve_layout(*styled_root, nullptr);
return resolve_layout(styled_root, nullptr);
}
void Frame::layout()
{
if (!m_document)
return;
auto styled_root = generate_style_tree();
auto layout_root = generate_layout_tree(*styled_root);
layout_root->style().size().set_width(m_size.width());

View file

@ -17,6 +17,7 @@ public:
private:
RefPtr<StyledNode> generate_style_tree();
RefPtr<LayoutNode> generate_layout_tree(const StyledNode&);
RefPtr<Document> m_document;
Size m_size;