changeset 103422:591af7ba061b

* 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.
author Adrian Robert <Adrian.B.Robert@gmail.com>
date Sun, 14 Jun 2009 18:58:28 +0000
parents 5ae71ac16ed0
children 083552a70ed8
files src/nsfont.m
diffstat 1 files changed, 8 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- 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]