Mercurial > hg > icedtea8-forest > jdk
changeset 14887:fd490378af48
8244621: [macos10.15] Garbled FX printing plus CoreText warnings on Catalina when building with Xcode 11
Reviewed-by: kcr, psadhukhan
author | prr |
---|---|
date | Fri, 05 Jun 2020 16:40:56 -0700 |
parents | 16e83f454a64 |
children | e720b78d3083 |
files | src/macosx/native/sun/font/AWTFont.m |
diffstat | 1 files changed, 31 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/macosx/native/sun/font/AWTFont.m Tue Dec 01 06:35:09 2020 +0000 +++ b/src/macosx/native/sun/font/AWTFont.m Fri Jun 05 16:40:56 2020 -0700 @@ -97,11 +97,32 @@ [super finalize]; } +static NSString* uiName = nil; +static NSString* uiBoldName = nil; + + (AWTFont *) awtFontForName:(NSString *)name style:(int)style { // create font with family & size - NSFont *nsFont = [NSFont fontWithName:name size:1.0]; + NSFont *nsFont = nil; + + if ((uiName != nil && [name isEqualTo:uiName]) || + (uiBoldName != nil && [name isEqualTo:uiBoldName])) { + if (style & java_awt_Font_BOLD) { + nsFont = [NSFont boldSystemFontOfSize:1.0]; + } else { + nsFont = [NSFont systemFontOfSize:1.0]; + } +#ifdef DEBUG + NSLog(@"nsFont-name is : %@", nsFont.familyName); + NSLog(@"nsFont-family is : %@", nsFont.fontName); + NSLog(@"nsFont-desc-name is : %@", nsFont.fontDescriptor.postscriptName); +#endif + + + } else { + nsFont = [NSFont fontWithName:name size:1.0]; + } if (nsFont == nil) { // if can't get font of that name, substitute system default font @@ -193,7 +214,7 @@ return [sFontFamilyTable objectForKey:fontname]; } -static void addFont(CTFontUIFontType uiType, +static void addFont(CTFontUIFontType uiType, NSMutableArray *allFonts, NSMutableDictionary* fontFamilyTable) { @@ -219,6 +240,12 @@ CFRelease(font); return; } + if (uiType == kCTFontUIFontSystem) { + uiName = (NSString*)name; + } + if (uiType == kCTFontUIFontEmphasizedSystem) { + uiBoldName = (NSString*)name; + } [allFonts addObject:name]; [fontFamilyTable setObject:family forKey:name]; #ifdef DEBUG @@ -230,7 +257,7 @@ CFRelease(desc); CFRelease(font); } - + static NSArray* GetFilteredFonts() { @@ -273,7 +300,6 @@ */ addFont(kCTFontUIFontSystem, allFonts, fontFamilyTable); addFont(kCTFontUIFontEmphasizedSystem, allFonts, fontFamilyTable); - addFont(kCTFontUIFontUserFixedPitch, allFonts, fontFamilyTable); sFilteredFonts = allFonts; sFontFamilyTable = fontFamilyTable; @@ -661,7 +687,7 @@ NSLog(@"Font is : %@", (NSString*)fontname); #endif jstring jFontName = (jstring)JNFNSToJavaString(env, fontname); - (*env)->CallBooleanMethod(env, arrayListOfString, addMID, jFontName); + (*env)->CallBooleanMethod(env, arrayListOfString, addMID, jFontName); (*env)->DeleteLocalRef(env, jFontName); } }