Jelajahi Sumber

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 tahun lalu
induk
melakukan
3ca26c7a7a
1 mengubah file dengan 6 tambahan dan 0 penghapusan
  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;
 }