diff --git a/Userland/Libraries/LibWeb/DOM/Document.cpp b/Userland/Libraries/LibWeb/DOM/Document.cpp index 0369b42a3c..fc49ffa2e0 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.cpp +++ b/Userland/Libraries/LibWeb/DOM/Document.cpp @@ -405,6 +405,8 @@ void Document::update_layout() if (!browsing_context()) return; + auto viewport_rect = browsing_context()->viewport_rect(); + update_style(); if (!m_layout_root) { @@ -413,6 +415,9 @@ void Document::update_layout() } Layout::BlockFormattingContext root_formatting_context(*m_layout_root, nullptr); + m_layout_root->build_stacking_context_tree(); + m_layout_root->set_content_size(viewport_rect.size().to_type()); + root_formatting_context.run(*m_layout_root, Layout::LayoutMode::Default); m_layout_root->set_needs_display(); diff --git a/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp index fb7f8c4275..edf3427e88 100644 --- a/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp @@ -532,10 +532,6 @@ void BlockFormattingContext::layout_initial_containing_block(LayoutMode layout_m auto viewport_rect = root().browsing_context().viewport_rect(); auto& icb = verify_cast(root()); - icb.build_stacking_context_tree(); - - icb.set_content_width(viewport_rect.width()); - icb.set_content_height(viewport_rect.height()); VERIFY(!icb.children_are_inline()); layout_block_level_children(root(), layout_mode);