RFR: 8273358: macOS Monterey does not have the font Times needed by Serif

Prasanta Sadhukhan psadhukhan at openjdk.java.net
Thu Sep 9 16:54:06 UTC 2021


On Wed, 8 Sep 2021 16:49:26 GMT, Phil Race <prr at openjdk.org> wrote:

> Times has been the hard coded name for Serif in the JDK sources for macOS since the port was contributed by Apple.
> But it seems that macOS Monterey doesn't have this font.
> And the hard-coded fallback is also Times ! So we end up returning Dialog which is very bad.
> 
> The safest fix here is to make Times New Roman the fall back, so that on older macOS versions there
> is absolutely no change. Only on Monterey and presumably later, will it use Times New Roman which,
> I suspect, is what Times actually ends up being anyway.
> 
> Also to prevent unconditional warnings being printed I needed to change those to be conditional on logging being set.

src/java.desktop/macosx/classes/sun/font/CFontManager.java line 228:

> 226: 
> 227:             setupLogicalFonts("Dialog", defaultFont, defaultFallback);
> 228:             setupLogicalFonts("Serif", "Times", "Times New Roman");

Can we do it under macos >= Monterey check so that we are sure it's not affecting older releases just as we do for JTabbedPane legibility issue using JRSUIUtils.isMacOSBigSurOrAbove() check?
I see we have both Times and Times New Roman in "Font Book"...BTW, did you try "Restore Standard fonts" option in Font Book to see if "Times" font somehow comes back?

test/jdk/java/awt/FontClass/LogicalFontsTest.java line 28:

> 26:  * @bug 8273358
> 27:  * @summary Verify logical fonts are as expected.
> 28:  * @run main/othervm LogicalFontsTest

Is othervm option needed as we are not setting new paramter in command line?

-------------

PR: https://git.openjdk.java.net/jdk/pull/5420



More information about the client-libs-dev mailing list