summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tiny_skia/src/text.rs14
1 files changed, 10 insertions, 4 deletions
diff --git a/tiny_skia/src/text.rs b/tiny_skia/src/text.rs
index 08fde4bf..9b949218 100644
--- a/tiny_skia/src/text.rs
+++ b/tiny_skia/src/text.rs
@@ -54,7 +54,8 @@ impl Pipeline {
pixels: &mut tiny_skia::PixmapMut<'_>,
clip_mask: Option<&tiny_skia::Mask>,
) {
- let line_height = f32::from(line_height.to_absolute(Pixels(size)));
+ let line_height = f32::from(line_height.to_absolute(Pixels(size)))
+ .max(f32::MIN_POSITIVE);
let font_system = self.font_system.get_mut();
let key = Key {
@@ -134,7 +135,8 @@ impl Pipeline {
) -> Size {
let mut measurement_cache = self.cache.borrow_mut();
- let line_height = f32::from(line_height.to_absolute(Pixels(size)));
+ let line_height = f32::from(line_height.to_absolute(Pixels(size)))
+ .max(f32::MIN_POSITIVE);
let (_, entry) = measurement_cache.allocate(
&mut self.font_system.borrow_mut(),
@@ -164,7 +166,8 @@ impl Pipeline {
) -> Option<Hit> {
let mut measurement_cache = self.cache.borrow_mut();
- let line_height = f32::from(line_height.to_absolute(Pixels(size)));
+ let line_height = f32::from(line_height.to_absolute(Pixels(size)))
+ .max(f32::MIN_POSITIVE);
let (_, entry) = measurement_cache.allocate(
&mut self.font_system.borrow_mut(),
@@ -405,7 +408,10 @@ impl Cache {
}
if let hash_map::Entry::Vacant(entry) = self.entries.entry(hash) {
- let metrics = cosmic_text::Metrics::new(key.size, key.size * 1.2);
+ let metrics = cosmic_text::Metrics::new(
+ key.size,
+ (key.size * 1.2).max(f32::MIN_POSITIVE),
+ );
let mut buffer = cosmic_text::Buffer::new(font_system, metrics);
buffer.set_size(