diff --git a/Libraries/LibHTML/Layout/LayoutNode.h b/Libraries/LibHTML/Layout/LayoutNode.h index 78b77dd8504..38cd663d8de 100644 --- a/Libraries/LibHTML/Layout/LayoutNode.h +++ b/Libraries/LibHTML/Layout/LayoutNode.h @@ -81,8 +81,6 @@ public: void set_needs_display(); - bool is_ancestor_of(const LayoutNode&) const; - template void for_each_fragment_of_this(Callback); @@ -130,12 +128,3 @@ inline const LayoutNodeWithStyle* LayoutNode::parent() const { return static_cast(TreeNode::parent()); } - -inline bool LayoutNode::is_ancestor_of(const LayoutNode& other) const -{ - for (auto* ancestor = other.parent(); ancestor; ancestor = ancestor->parent()) { - if (ancestor == this) - return true; - } - return false; -} diff --git a/Libraries/LibHTML/TreeNode.h b/Libraries/LibHTML/TreeNode.h index 467ab83cfb3..f384dd0a1c5 100644 --- a/Libraries/LibHTML/TreeNode.h +++ b/Libraries/LibHTML/TreeNode.h @@ -33,6 +33,8 @@ public: const T* first_child() const { return m_first_child; } const T* last_child() const { return m_last_child; } + bool is_ancestor_of(const TreeNode&) const; + void prepend_child(NonnullRefPtr node, bool call_inserted_into = true); void append_child(NonnullRefPtr node, bool call_inserted_into = true); void donate_all_children_to(T& node); @@ -98,3 +100,14 @@ inline void TreeNode::donate_all_children_to(T& node) m_first_child = nullptr; m_last_child = nullptr; } + + +template +inline bool TreeNode::is_ancestor_of(const TreeNode& other) const +{ + for (auto* ancestor = other.parent(); ancestor; ancestor = ancestor->parent()) { + if (ancestor == this) + return true; + } + return false; +}