diff --git a/Userland/Libraries/LibWeb/CSS/ComputedCSSStyleDeclaration.cpp b/Userland/Libraries/LibWeb/CSS/ComputedCSSStyleDeclaration.cpp index 3995c05d50..fb3b4ceaa6 100644 --- a/Userland/Libraries/LibWeb/CSS/ComputedCSSStyleDeclaration.cpp +++ b/Userland/Libraries/LibWeb/CSS/ComputedCSSStyleDeclaration.cpp @@ -381,7 +381,7 @@ static NonnullRefPtr value_or_default(Optional proper Optional ComputedCSSStyleDeclaration::property(PropertyID property_id) const { - const_cast(m_element->document()).force_layout(); + const_cast(m_element->document()).ensure_layout(); if (!m_element->layout_node()) { auto style = m_element->document().style_resolver().resolve_style(const_cast(*m_element)); diff --git a/Userland/Libraries/LibWeb/DOM/Document.cpp b/Userland/Libraries/LibWeb/DOM/Document.cpp index 2cfa9a55c2..d9e24f07d9 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.cpp +++ b/Userland/Libraries/LibWeb/DOM/Document.cpp @@ -400,6 +400,12 @@ void Document::force_layout() update_layout(); } +void Document::ensure_layout() +{ + if (!m_layout_root) + update_layout(); +} + void Document::update_layout() { if (!browsing_context()) diff --git a/Userland/Libraries/LibWeb/DOM/Document.h b/Userland/Libraries/LibWeb/DOM/Document.h index 099f199795..5ac4254e40 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.h +++ b/Userland/Libraries/LibWeb/DOM/Document.h @@ -144,6 +144,7 @@ public: void force_layout(); void invalidate_layout(); + void ensure_layout(); void update_style(); void update_layout();