Ticket #335: font.patch

File font.patch, 1.0 kB (added by maru, 6 months ago)

Use NSFontManager in the failover case.

  • Subtitles/SubATSUIRenderer.m

    old new  
    305305        ATSUFindFontFromName(uname, nlen * sizeof(unichar), kFontFamilyName, kFontNoPlatformCode, kFontNoScript, kFontNoLanguage, &font); 
    306306         
    307307        if (font == kATSUInvalidFontID) { 
    308                 font = ATSFontFindFromName((CFStringRef)name,kATSOptionFlagsDefault); 
     308 
     309                NSFontManager *fontManager = [NSFontManager sharedFontManager]; 
     310                NSEnumerator *availableFonts = [[fontManager availableFonts] objectEnumerator]; 
     311                NSString *availableFont; 
     312 
     313                while (availableFont = [availableFonts nextObject]) { 
     314                        if ([name caseInsensitiveCompare:availableFont] == NSOrderedSame) { 
     315                                font = ATSFontFindFromName((CFStringRef)availableFont, kATSOptionFlagsDefault); 
     316                                break; 
     317                        } 
     318                } 
    309319                 
    310320                if (font == kATSUInvalidFontID) font = ATSFontFindFromName((CFStringRef)@"Helvetica",kATSOptionFlagsDefault); 
    311321        }