Browse Source

LibWeb: Add temporary hack for `line-height: calc(...)`

At the moment, we can't resolve CSS calc() values without having a
LayoutNode. The new StyleProperties::line_height() overload was trying
to do exactly that, which led to an assertion.

This patch makes `line-height: calc(...)` behave the same as
`line-height: normal` for now and adds a FIXME.
Andreas Kling 2 năm trước cách đây
mục cha
commit
1f99f9523d
1 tập tin đã thay đổi với 4 bổ sung2 xóa
  1. 4 2
      Userland/Libraries/LibWeb/CSS/StyleProperties.cpp

+ 4 - 2
Userland/Libraries/LibWeb/CSS/StyleProperties.cpp

@@ -161,8 +161,10 @@ CSSPixels StyleProperties::line_height(CSSPixelRect const& viewport_rect, Gfx::F
         return Length(percentage.as_fraction(), Length::Type::Em).to_px(viewport_rect, font_metrics, font_size, root_font_size, parent_line_height, root_line_height);
     }
 
-    if (line_height->is_calculated())
-        return CSS::Length::make_calculated(const_cast<CalculatedStyleValue&>(line_height->as_calculated())).to_px(viewport_rect, font_metrics, font_size, root_font_size, parent_line_height, root_line_height);
+    if (line_height->is_calculated()) {
+        // FIXME: Handle `line-height: calc(...)` despite not having a LayoutNode here.
+        return font_metrics.line_spacing();
+    }
 
     return font_metrics.line_spacing();
 }