Browse Source

LibWeb: Fix InlineLevelIterator not exiting box model metric nodes

We were neglecting to pop nodes from the box model stack. The metrics
were already being zeroed out when used, but let's not grow the stack
needlessly.
Andreas Kling 3 năm trước cách đây
mục cha
commit
3ca26c7a7a
1 tập tin đã thay đổi với 6 bổ sung0 xóa
  1. 6 0
      Userland/Libraries/LibWeb/Layout/InlineLevelIterator.cpp

+ 6 - 0
Userland/Libraries/LibWeb/Layout/InlineLevelIterator.cpp

@@ -86,6 +86,12 @@ Layout::Node const* InlineLevelIterator::next_inline_node_in_pre_order(Layout::N
             return nullptr;
     }
 
+    // If node is the last node on the "box model node stack", pop it off.
+    if (!m_box_model_node_stack.is_empty()
+        && &m_box_model_node_stack.last() == node) {
+        exit_node_with_box_model_metrics();
+    }
+
     return next;
 }