From 1f99f9523dbf483cc9c41d6fc763b4cd641e04da Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 18 Mar 2023 21:15:51 +0100 Subject: [PATCH] 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. --- Userland/Libraries/LibWeb/CSS/StyleProperties.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp b/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp index ed9b8418b3..0621ee1935 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp +++ b/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(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(); }