From cf69cc7f7d8dc4918eeea0eec3969e3657a8f9c1 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 14 Mar 2022 19:59:05 +0100 Subject: [PATCH] LibWeb: Invalidate style when a browsing context's viewport is resized Anything with viewport-relative CSS lengths (vw/vh/vmin/vmax) needs to have its style recomputed if the viewport size changes. --- Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp b/Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp index 7f6374f4be..66b18d9bc1 100644 --- a/Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp +++ b/Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp @@ -97,8 +97,10 @@ void BrowsingContext::set_viewport_rect(Gfx::IntRect const& rect) if (m_size != rect.size()) { m_size = rect.size(); - if (auto* document = active_document()) - document->set_needs_layout(); + if (auto* document = active_document()) { + // NOTE: Resizing the viewport changes the reference value for viewport-relative CSS lengths. + document->invalidate_style(); + } did_change = true; }