Browse Source

LibWeb: Invalidate layout after setting Element.innerHTML

It's not enough to only relayout here, since the API can substantially
change the DOM. We have to rebuild the layout tree.
Andreas Kling 3 years ago
parent
commit
3b037726e9
1 changed files with 3 additions and 1 deletions
  1. 3 1
      Userland/Libraries/LibWeb/DOM/Element.cpp

+ 3 - 1
Userland/Libraries/LibWeb/DOM/Element.cpp

@@ -389,7 +389,9 @@ ExceptionOr<void> Element::set_inner_html(String const& markup)
         return result.exception();
 
     set_needs_style_update(true);
-    document().set_needs_layout();
+
+    // NOTE: Since the DOM has changed, we have to rebuild the layout tree.
+    document().invalidate_layout();
     return {};
 }