Parcourir la source

LibWeb: Add Layout::Node::is_root_element()

This returns true if the layout node corresponds to the <html> element.
Andreas Kling il y a 4 ans
Parent
commit
11256de366
2 fichiers modifiés avec 10 ajouts et 0 suppressions
  1. 8 0
      Libraries/LibWeb/Layout/Node.cpp
  2. 2 0
      Libraries/LibWeb/Layout/Node.h

+ 8 - 0
Libraries/LibWeb/Layout/Node.cpp

@@ -28,6 +28,7 @@
 #include <LibWeb/DOM/Document.h>
 #include <LibWeb/DOM/Element.h>
 #include <LibWeb/Dump.h>
+#include <LibWeb/HTML/HTMLHtmlElement.h>
 #include <LibWeb/Layout/BlockBox.h>
 #include <LibWeb/Layout/InitialContainingBlockBox.h>
 #include <LibWeb/Layout/Node.h>
@@ -265,4 +266,11 @@ void Node::handle_mousemove(Badge<EventHandler>, const Gfx::IntPoint&, unsigned,
 {
 }
 
+bool Node::is_root_element() const
+{
+    if (is_anonymous())
+        return false;
+    return is<HTML::HTMLHtmlElement>(*dom_node());
+}
+
 }

+ 2 - 0
Libraries/LibWeb/Layout/Node.h

@@ -91,6 +91,8 @@ public:
     const InitialContainingBlockBox& root() const;
     InitialContainingBlockBox& root();
 
+    bool is_root_element() const;
+
     virtual const char* class_name() const = 0;
     virtual bool is_initial_containing_block() const { return false; }
     virtual bool is_text() const { return false; }