diff --git a/Libraries/LibWeb/Animations/KeyframeEffect.cpp b/Libraries/LibWeb/Animations/KeyframeEffect.cpp index 4eccfde0381..1e48cb9f2dd 100644 --- a/Libraries/LibWeb/Animations/KeyframeEffect.cpp +++ b/Libraries/LibWeb/Animations/KeyframeEffect.cpp @@ -968,8 +968,8 @@ void KeyframeEffect::update_computed_properties() } } - if (invalidation.relayout) - target->set_needs_layout_update(DOM::SetNeedsLayoutReason::KeyframeEffect); + if (invalidation.relayout && target->layout_node()) + target->layout_node()->set_needs_layout_update(DOM::SetNeedsLayoutReason::KeyframeEffect); if (invalidation.rebuild_layout_tree) { // We mark layout tree for rebuild starting from parent element to correctly invalidate // "display" property change to/from "contents" value. diff --git a/Libraries/LibWeb/DOM/CharacterData.cpp b/Libraries/LibWeb/DOM/CharacterData.cpp index d57dfacde0f..608180609d7 100644 --- a/Libraries/LibWeb/DOM/CharacterData.cpp +++ b/Libraries/LibWeb/DOM/CharacterData.cpp @@ -147,7 +147,7 @@ WebIDL::ExceptionOr CharacterData::replace_data(size_t offset, size_t coun static_cast(*layout_node).invalidate_text_for_rendering(); // We also need to relayout. - set_needs_layout_update(SetNeedsLayoutReason::CharacterDataReplaceData); + layout_node->set_needs_layout_update(SetNeedsLayoutReason::CharacterDataReplaceData); } document().bump_character_data_version(); diff --git a/Libraries/LibWeb/DOM/Document.cpp b/Libraries/LibWeb/DOM/Document.cpp index 57730fed879..fa89aa3cd45 100644 --- a/Libraries/LibWeb/DOM/Document.cpp +++ b/Libraries/LibWeb/DOM/Document.cpp @@ -1293,7 +1293,7 @@ void Document::update_layout(UpdateLayoutReason reason) update_style(); - if (!m_needs_layout_update && m_layout_root) + if (m_layout_root && !m_layout_root->needs_layout_update()) return; // NOTE: If this is a document hosting