From 497003e67e3f394a940ba4d2ae0ba0671c19a67e Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Thu, 6 Jun 2024 15:52:52 -0600 Subject: [PATCH] Fall back to buffer line height only if no glyphs found --- src/buffer.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/buffer.rs b/src/buffer.rs index 46f70a5..fec3c31 100644 --- a/src/buffer.rs +++ b/src/buffer.rs @@ -126,13 +126,17 @@ impl<'b> Iterator for LayoutRunIter<'b> { continue; } - let mut line_height = self.buffer.metrics.line_height; + let mut line_height_opt: Option = None; for glyph in layout_line.glyphs.iter() { if let Some(glyph_line_height) = glyph.line_height_opt { - line_height = line_height.max(glyph_line_height); + line_height_opt = match line_height_opt { + Some(line_height) => Some(line_height.max(glyph_line_height)), + None => Some(glyph_line_height) + }; } } + let line_height = line_height_opt.unwrap_or(self.buffer.metrics.line_height); let line_top = self.line_top; let glyph_height = layout_line.max_ascent + layout_line.max_descent; let centering_offset = (line_height - glyph_height) / 2.0;