diff --git a/Libraries/LibHTML/DOM/Document.cpp b/Libraries/LibHTML/DOM/Document.cpp
index c0d1c524a4..da43fa7b15 100644
--- a/Libraries/LibHTML/DOM/Document.cpp
+++ b/Libraries/LibHTML/DOM/Document.cpp
@@ -181,6 +181,12 @@ URL Document::complete_url(const String& string) const
return url;
}
+void Document::force_layout()
+{
+ m_layout_root = nullptr;
+ layout();
+}
+
void Document::layout()
{
if (!m_layout_root) {
@@ -188,6 +194,7 @@ void Document::layout()
m_layout_root = tree_builder.build(*this);
}
m_layout_root->layout();
+ m_layout_root->set_needs_display();
}
void Document::update_style()
diff --git a/Libraries/LibHTML/DOM/Document.h b/Libraries/LibHTML/DOM/Document.h
index c7c7541748..95046894fc 100644
--- a/Libraries/LibHTML/DOM/Document.h
+++ b/Libraries/LibHTML/DOM/Document.h
@@ -69,6 +69,7 @@ public:
void set_visited_link_color(Color);
void layout();
+ void force_layout();
void update_style();
void update_layout();