OpenJDK / jdk / jdk
changeset 59694:6628a50b6dcd
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 | be5eaa360b65 |
children | a916a21e505e |
files | src/java.desktop/macosx/native/libawt_lwawt/font/AWTFont.m |
diffstat | 1 files changed, 31 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/java.desktop/macosx/native/libawt_lwawt/font/AWTFont.m Wed Jun 03 21:51:50 2020 +0530 +++ b/src/java.desktop/macosx/native/libawt_lwawt/font/AWTFont.m Fri Jun 05 16:40:56 2020 -0700 @@ -66,11 +66,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 @@ -162,7 +183,7 @@ return [sFontFamilyTable objectForKey:fontname]; } -static void addFont(CTFontUIFontType uiType, +static void addFont(CTFontUIFontType uiType, NSMutableArray *allFonts, NSMutableDictionary* fontFamilyTable) { @@ -188,6 +209,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 @@ -199,7 +226,7 @@ CFRelease(desc); CFRelease(font); } - + static NSArray* GetFilteredFonts() { @@ -242,7 +269,6 @@ */ addFont(kCTFontUIFontSystem, allFonts, fontFamilyTable); addFont(kCTFontUIFontEmphasizedSystem, allFonts, fontFamilyTable); - addFont(kCTFontUIFontUserFixedPitch, allFonts, fontFamilyTable); sFilteredFonts = allFonts; sFontFamilyTable = fontFamilyTable; @@ -610,7 +636,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); } }