Changeset 18680 in webkit


Ignore:
Timestamp:
Jan 8, 2007 2:15:00 PM (17 years ago)
Author:
thatcher
Message:

Reviewed by Geoff.

<rdar://problem/4865325> please re-add auto font activation support in WebKit

  • platform/mac/WebFontCache.mm: (+[WebFontCache fontWithFamily:traits:size:]):
Location:
trunk/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r18677 r18680  
     12007-01-08  Timothy Hatcher  <timothy@apple.com>
     2
     3        Reviewed by Geoff.
     4
     5        <rdar://problem/4865325> please re-add auto font activation support in WebKit
     6
     7        * platform/mac/WebFontCache.mm:
     8        (+[WebFontCache fontWithFamily:traits:size:]):
     9
    1102007-01-08  Darin Adler  <darin@apple.com>
    211
  • trunk/WebCore/platform/mac/WebFontCache.mm

    r17652 r18680  
    114114{
    115115    NSFontManager *fontManager = [NSFontManager sharedFontManager];
    116     NSFont *font= nil;
    117    
     116
    118117    // Look for an exact match first.
    119118    NSEnumerator *availableFonts = [[fontManager availableFonts] objectEnumerator];
     
    122121        if ([desiredFamily caseInsensitiveCompare:availableFont] == NSOrderedSame) {
    123122            NSFont *nameMatchedFont = [NSFont fontWithName:availableFont size:size];
    124    
     123
    125124            // Special case Osaka-Mono.  According to <rdar://problem/3999467>, we need to
    126125            // treat Osaka-Mono as fixed pitch.
    127126            if ([desiredFamily caseInsensitiveCompare:@"Osaka-Mono"] == NSOrderedSame && desiredTraits == 0)
    128                return nameMatchedFont;
     127                return nameMatchedFont;
    129128
    130129            NSFontTraitMask traits = [fontManager traitsOfFont:nameMatchedFont];
    131            
    132             if ((traits & desiredTraits) == desiredTraits){
    133                 font = [fontManager convertFont:nameMatchedFont toHaveTrait:desiredTraits];
    134                 return font;
    135             }
     130            if ((traits & desiredTraits) == desiredTraits)
     131                return [fontManager convertFont:nameMatchedFont toHaveTrait:desiredTraits];
    136132            break;
    137133        }
    138134    }
    139    
     135
     136    // font was not immediately available, try auto activated fonts <rdar://problem/4564955>
     137    NSFont *font = [NSFont fontWithName:desiredFamily size:size];
     138    if (font) {
     139        NSFontTraitMask traits = [fontManager traitsOfFont:font];
     140        if ((traits & desiredTraits) == desiredTraits)
     141            return [fontManager convertFont:font toHaveTrait:desiredTraits];
     142    }
     143
    140144    // Do a simple case insensitive search for a matching font family.
    141145    // NSFontManager requires exact name matches.
Note: See TracChangeset for help on using the changeset viewer.