1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 14:47:44 +00:00

LibWeb: Don't add half-leading twice to inline block boxes

Inline-level blocks already have the half-leading applied internally,
so by adding it twice, we were offsetting their baseline by the
half-leading of the line.

This fixes an issue where inline-blocks were vertically offset from
the line they're supposed to sit on.
This commit is contained in:
Andreas Kling 2022-10-03 01:16:07 +02:00
parent ffbf5596cd
commit f260afedb1

View file

@ -214,14 +214,12 @@ void LineBuilder::update_last_line()
float fragment_baseline = 0; float fragment_baseline = 0;
if (fragment.layout_node().is_text_node()) { if (fragment.layout_node().is_text_node()) {
fragment_baseline = font_metrics.ascent; fragment_baseline = font_metrics.ascent + half_leading;
} else { } else {
auto const& box = verify_cast<Layout::Box>(fragment.layout_node()); auto const& box = verify_cast<Layout::Box>(fragment.layout_node());
fragment_baseline = box_baseline(m_layout_state, box); fragment_baseline = box_baseline(m_layout_state, box);
} }
fragment_baseline += half_leading;
// Remember the baseline used for this fragment. This will be used when painting the fragment. // Remember the baseline used for this fragment. This will be used when painting the fragment.
fragment.set_baseline(fragment_baseline); fragment.set_baseline(fragment_baseline);