From 60c781ebc7fc15df0ebdd878b97ffaf7fcafc4b6 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 18 Mar 2022 11:55:16 +0100 Subject: [PATCH] LibWeb: Simplify Layout::Node::containing_block() Use first_ancestor_of_type() instead of implementing a custom traversal lambda. --- Userland/Libraries/LibWeb/Layout/Node.cpp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/Userland/Libraries/LibWeb/Layout/Node.cpp b/Userland/Libraries/LibWeb/Layout/Node.cpp index 4afc3bacea..49efad6a29 100644 --- a/Userland/Libraries/LibWeb/Layout/Node.cpp +++ b/Userland/Libraries/LibWeb/Layout/Node.cpp @@ -40,15 +40,8 @@ bool Node::can_contain_boxes_with_position_absolute() const const BlockContainer* Node::containing_block() const { - auto nearest_block_ancestor = [this] { - auto* ancestor = parent(); - while (ancestor && !is(*ancestor)) - ancestor = ancestor->parent(); - return static_cast(ancestor); - }; - if (is(*this)) - return nearest_block_ancestor(); + return first_ancestor_of_type(); auto position = computed_values().position(); @@ -64,7 +57,7 @@ const BlockContainer* Node::containing_block() const if (position == CSS::Position::Fixed) return &root(); - return nearest_block_ancestor(); + return first_ancestor_of_type(); } bool Node::establishes_stacking_context() const