Check LineHeight > 0.0 before allocating text
This commit is contained in:
parent
20681b4777
commit
bdf18554fe
2 changed files with 12 additions and 15 deletions
|
|
@ -54,8 +54,7 @@ impl Pipeline {
|
||||||
pixels: &mut tiny_skia::PixmapMut<'_>,
|
pixels: &mut tiny_skia::PixmapMut<'_>,
|
||||||
clip_mask: Option<&tiny_skia::Mask>,
|
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 font_system = self.font_system.get_mut();
|
||||||
let key = Key {
|
let key = Key {
|
||||||
|
|
@ -135,8 +134,7 @@ impl Pipeline {
|
||||||
) -> Size {
|
) -> Size {
|
||||||
let mut measurement_cache = self.cache.borrow_mut();
|
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(
|
let (_, entry) = measurement_cache.allocate(
|
||||||
&mut self.font_system.borrow_mut(),
|
&mut self.font_system.borrow_mut(),
|
||||||
|
|
@ -166,8 +164,7 @@ impl Pipeline {
|
||||||
) -> Option<Hit> {
|
) -> Option<Hit> {
|
||||||
let mut measurement_cache = self.cache.borrow_mut();
|
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(
|
let (_, entry) = measurement_cache.allocate(
|
||||||
&mut self.font_system.borrow_mut(),
|
&mut self.font_system.borrow_mut(),
|
||||||
|
|
@ -409,8 +406,8 @@ impl Cache {
|
||||||
|
|
||||||
if let hash_map::Entry::Vacant(entry) = self.entries.entry(hash) {
|
if let hash_map::Entry::Vacant(entry) = self.entries.entry(hash) {
|
||||||
let metrics = cosmic_text::Metrics::new(
|
let metrics = cosmic_text::Metrics::new(
|
||||||
key.size,
|
key.line_height,
|
||||||
(key.size * 1.2).max(f32::MIN_POSITIVE),
|
(key.line_height * 1.2).max(f32::MIN_POSITIVE),
|
||||||
);
|
);
|
||||||
let mut buffer = cosmic_text::Buffer::new(font_system, metrics);
|
let mut buffer = cosmic_text::Buffer::new(font_system, metrics);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,8 +96,7 @@ impl Pipeline {
|
||||||
section
|
section
|
||||||
.line_height
|
.line_height
|
||||||
.to_absolute(Pixels(section.size)),
|
.to_absolute(Pixels(section.size)),
|
||||||
)
|
),
|
||||||
.max(f32::MIN_POSITIVE),
|
|
||||||
font: section.font,
|
font: section.font,
|
||||||
bounds: Size {
|
bounds: Size {
|
||||||
width: section.bounds.width,
|
width: section.bounds.width,
|
||||||
|
|
@ -239,8 +238,7 @@ impl Pipeline {
|
||||||
) -> Size {
|
) -> Size {
|
||||||
let mut cache = self.cache.borrow_mut();
|
let mut 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) = cache.allocate(
|
let (_, entry) = cache.allocate(
|
||||||
&mut self.font_system.borrow_mut(),
|
&mut self.font_system.borrow_mut(),
|
||||||
|
|
@ -271,8 +269,7 @@ impl Pipeline {
|
||||||
) -> Option<Hit> {
|
) -> Option<Hit> {
|
||||||
let mut cache = self.cache.borrow_mut();
|
let mut 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) = cache.allocate(
|
let (_, entry) = cache.allocate(
|
||||||
&mut self.font_system.borrow_mut(),
|
&mut self.font_system.borrow_mut(),
|
||||||
|
|
@ -417,7 +414,10 @@ impl Cache {
|
||||||
}
|
}
|
||||||
|
|
||||||
if let hash_map::Entry::Vacant(entry) = self.entries.entry(hash) {
|
if let hash_map::Entry::Vacant(entry) = self.entries.entry(hash) {
|
||||||
let metrics = glyphon::Metrics::new(key.size, key.line_height);
|
let metrics = glyphon::Metrics::new(
|
||||||
|
key.size,
|
||||||
|
key.line_height.max(f32::MIN_POSITIVE),
|
||||||
|
);
|
||||||
let mut buffer = glyphon::Buffer::new(font_system, metrics);
|
let mut buffer = glyphon::Buffer::new(font_system, metrics);
|
||||||
|
|
||||||
buffer.set_size(
|
buffer.set_size(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue