From 8b177a6da5b96b051ee65a264207cf9e8479e264 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 18 Mar 2023 12:09:22 +0100 Subject: [PATCH] LibWeb: Clarify stacking context creation for viewport box Explicitly check is_viewport() instead of looking at the corresponding DOM node. (The viewport has the DOM document as its DOM node, but that's not obvious from context here.) --- Userland/Libraries/LibWeb/Layout/Node.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/Layout/Node.cpp b/Userland/Libraries/LibWeb/Layout/Node.cpp index ca474c7441..317281516e 100644 --- a/Userland/Libraries/LibWeb/Layout/Node.cpp +++ b/Userland/Libraries/LibWeb/Layout/Node.cpp @@ -117,8 +117,15 @@ bool Node::establishes_stacking_context() const if (!has_style()) return false; - if (is_root_element() || dom_node() == &document().root()) + + // We make a stacking context for the viewport. Painting and hit testing starts from here. + if (is_viewport()) return true; + + // Root element of the document (). + if (is_root_element()) + return true; + auto position = computed_values().position(); // Element with a position value absolute or relative and z-index value other than auto.