# HG changeset patch # User Adrian Robert # Date 1245005908 0 # Node ID 591af7ba061b52ac8cc19b254ffc2a64740b967e # Parent 5ae71ac16ed0af5e224ce1eec7141343a53b8ef7 * nsfont.m (ns_attribute_value): Remove. (ns_attribute_fvalue): Incorporate code from ns_attribute_value. (ns_has_attribute): Shrink the normal range. (ns_findfonts): Don't worry about requested spec in determining need for synthItal. diff -r 5ae71ac16ed0 -r 591af7ba061b src/nsfont.m --- a/src/nsfont.m Sun Jun 14 18:34:43 2009 +0000 +++ b/src/nsfont.m Sun Jun 14 18:58:28 2009 +0000 @@ -106,21 +106,15 @@ } -/* Return NSNumber or nil if attr is not set. */ -static NSNumber -*ns_attribute_value (NSFontDescriptor *fdesc, NSString *trait) +/* Return 0 if attr not set, else value (which might also be 0). + On Leopard 0 gets returned even on descriptors where the attribute + was never set, so there's no way to distinguish between unspecified + and set to not have. Callers should assume 0 means unspecified. */ +static float +ns_attribute_fvalue (NSFontDescriptor *fdesc, NSString *trait) { NSDictionary *tdict = [fdesc objectForKey: NSFontTraitsAttribute]; NSNumber *val = [tdict objectForKey: trait]; - return val; -} - - -/* Return 0 if attr not set, else value (which might also be 0). */ -static float -ns_attribute_fvalue (NSFontDescriptor *fdesc, NSString *trait) -{ - NSNumber *val = ns_attribute_value (fdesc, trait); return val == nil ? 0.0 : [val floatValue]; } @@ -130,7 +124,7 @@ ns_has_attribute (NSFontDescriptor *fdesc, NSString *trait) { float v = ns_attribute_fvalue (fdesc, trait); - return v < -0.25 || v > 0.25; + return v < -0.05 || v > 0.05; } @@ -502,9 +496,7 @@ /* Add synthItal member if needed. */ family = [fdesc objectForKey: NSFontFamilyAttribute]; - if (family != nil && !foundItal && XINT (Flength (list)) > 0 - && (ns_attribute_value (fdesc, NSFontSlantTrait) == nil - || ns_has_attribute (fdesc, NSFontSlantTrait))) + if (family != nil && !foundItal && XINT (Flength (list)) > 0) { NSFontDescriptor *sDesc = [[[NSFontDescriptor new] fontDescriptorWithSymbolicTraits: NSFontItalicTrait]