Prechádzať zdrojové kódy

LibWeb: Let's say that layout viewports are always scroll containers

This will allow us to have a shared code path for overflow calculation.
Andreas Kling 2 rokov pred
rodič
commit
4ff52cebc4
1 zmenil súbory, kde vykonal 4 pridanie a 0 odobranie
  1. 4 0
      Userland/Libraries/LibWeb/Layout/Box.cpp

+ 4 - 0
Userland/Libraries/LibWeb/Layout/Box.cpp

@@ -47,6 +47,10 @@ static bool overflow_value_makes_box_a_scroll_container(CSS::Overflow overflow)
 // https://www.w3.org/TR/css-overflow-3/#scroll-container
 // https://www.w3.org/TR/css-overflow-3/#scroll-container
 bool Box::is_scroll_container() const
 bool Box::is_scroll_container() const
 {
 {
+    // NOTE: This isn't in the spec, but we want the viewport to behave like a scroll container.
+    if (is_viewport())
+        return true;
+
     return overflow_value_makes_box_a_scroll_container(computed_values().overflow_x())
     return overflow_value_makes_box_a_scroll_container(computed_values().overflow_x())
         || overflow_value_makes_box_a_scroll_container(computed_values().overflow_y());
         || overflow_value_makes_box_a_scroll_container(computed_values().overflow_y());
 }
 }