From 0ccad4208fedbb69f10e05f88f82931b8494900e Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 8 Jul 2019 07:24:15 +0200 Subject: [PATCH] LibHTML: Move layout tree building to a separate function. --- Libraries/LibHTML/Frame.cpp | 18 +++++++++++------- Libraries/LibHTML/Frame.h | 1 + 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Libraries/LibHTML/Frame.cpp b/Libraries/LibHTML/Frame.cpp index 6936d0d2c2..4e88b03a75 100644 --- a/Libraries/LibHTML/Frame.cpp +++ b/Libraries/LibHTML/Frame.cpp @@ -52,13 +52,8 @@ RefPtr Frame::generate_style_tree() return styled_root; } -void Frame::layout() +RefPtr 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 { if (styled_node.node() && styled_node.node()->is_document()) return adopt(*new LayoutDocument(static_cast(*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()); diff --git a/Libraries/LibHTML/Frame.h b/Libraries/LibHTML/Frame.h index 89abbc454e..1ceef02564 100644 --- a/Libraries/LibHTML/Frame.h +++ b/Libraries/LibHTML/Frame.h @@ -17,6 +17,7 @@ public: private: RefPtr generate_style_tree(); + RefPtr generate_layout_tree(const StyledNode&); RefPtr m_document; Size m_size;