浏览代码

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.
Andreas Kling 3 年之前
父节点
当前提交
cf69cc7f7d
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp

+ 4 - 2
Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp

@@ -97,8 +97,10 @@ void BrowsingContext::set_viewport_rect(Gfx::IntRect const& rect)
 
 
     if (m_size != rect.size()) {
     if (m_size != rect.size()) {
         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;
         did_change = true;
     }
     }