From 92b6a7a18f062c0d17270334e9656c2adcd51544 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 12 Oct 2019 13:42:58 +0200 Subject: [PATCH] LibHTML: Add StyleProperties::line_height() We currently hard-code the line height to 140% of the font glyph height and this patch doesn't fix the hard-coding, but at least moves it out of LayoutText and into StyleProperties where it can be re-used until the day we go and do a proper implementation of CSS line-height. :^) --- Libraries/LibHTML/CSS/StyleProperties.cpp | 6 ++++++ Libraries/LibHTML/CSS/StyleProperties.h | 2 ++ Libraries/LibHTML/Layout/LayoutText.cpp | 3 +-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Libraries/LibHTML/CSS/StyleProperties.cpp b/Libraries/LibHTML/CSS/StyleProperties.cpp index 2c74171e28..e0386e63b0 100644 --- a/Libraries/LibHTML/CSS/StyleProperties.cpp +++ b/Libraries/LibHTML/CSS/StyleProperties.cpp @@ -91,3 +91,9 @@ void StyleProperties::load_font() const m_font = Font::load_from_file(String::format("/res/fonts/%s", file_name.characters())); } + +int StyleProperties::line_height() const +{ + // FIXME: Allow overriding the line-height. We currently default to 140% which seems to look nice. + return (int)(font().glyph_height() * 1.4f); +} diff --git a/Libraries/LibHTML/CSS/StyleProperties.h b/Libraries/LibHTML/CSS/StyleProperties.h index 650836eed1..c18b87ef93 100644 --- a/Libraries/LibHTML/CSS/StyleProperties.h +++ b/Libraries/LibHTML/CSS/StyleProperties.h @@ -32,6 +32,8 @@ public: return *m_font; } + int line_height() const; + private: HashMap> m_property_values; diff --git a/Libraries/LibHTML/Layout/LayoutText.cpp b/Libraries/LibHTML/Layout/LayoutText.cpp index ff1c072010..9bf6a6bc5b 100644 --- a/Libraries/LibHTML/Layout/LayoutText.cpp +++ b/Libraries/LibHTML/Layout/LayoutText.cpp @@ -123,8 +123,7 @@ void LayoutText::split_into_lines(LayoutBlock& container) { auto& font = style().font(); int space_width = font.glyph_width(' ') + font.glyph_spacing(); - // FIXME: Allow overriding the line-height. We currently default to 140% which seems to look nice. - int line_height = (int)(font.glyph_height() * 1.4f); + int line_height = style().line_height(); auto& line_boxes = container.line_boxes(); if (line_boxes.is_empty())