From 98ff8ef0cf2bdfed37a1552a048a551e7b1b7d5b Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 28 Oct 2019 20:51:45 +0100 Subject: [PATCH] LibHTML: Add Document::force_layout() ..for when you really need a layout to happen right now. Also, automatically repaint the layout root after layout. --- Libraries/LibHTML/DOM/Document.cpp | 7 +++++++ Libraries/LibHTML/DOM/Document.h | 1 + 2 files changed, 8 insertions(+) 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();