stylo: Don't call fixup_generic_font for system or CSS wide specified fonts

This commit is contained in:
Manish Goregaokar 2017-08-10 17:16:36 -07:00 committed by Manish Goregaokar
parent 3ed6c22e45
commit 69070c7592
2 changed files with 14 additions and 1 deletions

View file

@ -2165,11 +2165,17 @@ fn static_assert() {
} }
pub fn fixup_none_generic(&mut self, device: &Device) { pub fn fixup_none_generic(&mut self, device: &Device) {
self.gecko.mFont.systemFont = false;
unsafe { unsafe {
bindings::Gecko_nsStyleFont_FixupNoneGeneric(&mut self.gecko, device.pres_context()) bindings::Gecko_nsStyleFont_FixupNoneGeneric(&mut self.gecko, device.pres_context())
} }
} }
pub fn fixup_system(&mut self) {
self.gecko.mFont.systemFont = true;
self.gecko.mGenericID = structs::kGenericFont_NONE;
}
pub fn set_font_family(&mut self, v: longhands::font_family::computed_value::T) { pub fn set_font_family(&mut self, v: longhands::font_family::computed_value::T) {
use properties::longhands::font_family::computed_value::{FontFamily, FamilyNameSyntax}; use properties::longhands::font_family::computed_value::{FontFamily, FamilyNameSyntax};
@ -2206,6 +2212,7 @@ fn static_assert() {
pub fn copy_font_family_from(&mut self, other: &Self) { pub fn copy_font_family_from(&mut self, other: &Self) {
unsafe { Gecko_CopyFontFamilyFrom(&mut self.gecko.mFont, &other.gecko.mFont); } unsafe { Gecko_CopyFontFamilyFrom(&mut self.gecko.mFont, &other.gecko.mFont); }
self.gecko.mGenericID = other.gecko.mGenericID; self.gecko.mGenericID = other.gecko.mGenericID;
self.gecko.mFont.systemFont = other.gecko.mFont.systemFont;
} }
pub fn reset_font_family(&mut self, other: &Self) { pub fn reset_font_family(&mut self, other: &Self) {

View file

@ -3297,7 +3297,13 @@ where
&mut cascade_info); &mut cascade_info);
% if product == "gecko": % if product == "gecko":
let device = context.builder.device; let device = context.builder.device;
context.builder.mutate_font().fixup_none_generic(device); if let PropertyDeclaration::FontFamily(ref val) = **declaration {
if val.get_system().is_some() {
context.builder.mutate_font().fixup_system();
} else {
context.builder.mutate_font().fixup_none_generic(device);
}
}
% endif % endif
} }
} }