summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Josh Megnauth <jo.sh@tutanota.com>2023-09-04 21:03:16 -0400
committerLibravatar Josh Megnauth <jo.sh@tutanota.com>2023-09-04 21:03:16 -0400
commit20681b4777a1954e6b7f659d5bc1817f7924f40d (patch)
tree275022f958b7daa78c7979645aa0a227aaf274cf
parentef429fbea6e39efcfdc58fdd8a2fe365fd5314d9 (diff)
downloadiced-20681b4777a1954e6b7f659d5bc1817f7924f40d.tar.gz
iced-20681b4777a1954e6b7f659d5bc1817f7924f40d.tar.bz2
iced-20681b4777a1954e6b7f659d5bc1817f7924f40d.zip
Ensure LineHeight is always > 0.0 for tiny skia.
-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(