aboutsummaryrefslogtreecommitdiffstats
path: root/components/gfx/font_context.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/gfx/font_context.rs')
-rw-r--r--components/gfx/font_context.rs55
1 files changed, 26 insertions, 29 deletions
diff --git a/components/gfx/font_context.rs b/components/gfx/font_context.rs
index 42415d9b833..d6c26083bf0 100644
--- a/components/gfx/font_context.rs
+++ b/components/gfx/font_context.rs
@@ -223,38 +223,35 @@ impl FontContext {
}
}
- // If unable to create any of the specified fonts, create one from the
- // list of last resort fonts for this platform.
- if fonts.is_empty() {
- let mut cache_hit = false;
- for cached_font_entry in &self.fallback_font_cache {
- let cached_font = cached_font_entry.font.borrow();
- if cached_font.descriptor == desc &&
- cached_font.requested_pt_size == style.font_size &&
- cached_font.variant == style.font_variant {
- fonts.push(cached_font_entry.font.clone());
- cache_hit = true;
- break;
- }
+ // Add a last resort font as a fallback option.
+ let mut cache_hit = false;
+ for cached_font_entry in &self.fallback_font_cache {
+ let cached_font = cached_font_entry.font.borrow();
+ if cached_font.descriptor == desc &&
+ cached_font.requested_pt_size == style.font_size &&
+ cached_font.variant == style.font_variant {
+ fonts.push(cached_font_entry.font.clone());
+ cache_hit = true;
+ break;
}
+ }
- if !cache_hit {
- let template_info = self.font_cache_thread.last_resort_font_template(desc.clone());
- let layout_font = self.create_layout_font(template_info.font_template,
- desc.clone(),
- style.font_size,
- style.font_variant,
- template_info.font_key);
- match layout_font {
- Ok(layout_font) => {
- let layout_font = Rc::new(RefCell::new(layout_font));
- self.fallback_font_cache.push(FallbackFontCacheEntry {
- font: layout_font.clone(),
- });
- fonts.push(layout_font);
- }
- Err(_) => debug!("Failed to create fallback layout font!")
+ if !cache_hit {
+ let template_info = self.font_cache_thread.last_resort_font_template(desc.clone());
+ let layout_font = self.create_layout_font(template_info.font_template,
+ desc.clone(),
+ style.font_size,
+ style.font_variant,
+ template_info.font_key);
+ match layout_font {
+ Ok(layout_font) => {
+ let layout_font = Rc::new(RefCell::new(layout_font));
+ self.fallback_font_cache.push(FallbackFontCacheEntry {
+ font: layout_font.clone(),
+ });
+ fonts.push(layout_font);
}
+ Err(_) => debug!("Failed to create fallback layout font!")
}
}