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

Reviewed-by: kizune, aivanov
This commit is contained in:
Phil Race 2021-09-10 16:36:06 +00:00
parent e58c12e618
commit efe3ed1e70
2 changed files with 65 additions and 3 deletions
src/java.desktop/macosx/classes/sun/font
test/jdk/java/awt/FontClass

@ -225,7 +225,7 @@ public final class CFontManager extends SunFontManager {
String defaultFallback = "Lucida Grande";
setupLogicalFonts("Dialog", defaultFont, defaultFallback);
setupLogicalFonts("Serif", "Times", "Times");
setupLogicalFonts("Serif", "Times", "Times New Roman");
setupLogicalFonts("SansSerif", defaultFont, defaultFallback);
setupLogicalFonts("Monospaced", "Menlo", "Courier");
setupLogicalFonts("DialogInput", defaultFont, defaultFallback);
@ -251,7 +251,13 @@ public final class CFontManager extends SunFontManager {
family = getFontFamily(realName, fallbackName);
if (family != null) return family;
System.err.println("Warning: the fonts \"" + realName + "\" and \"" + fallbackName + "\" are not available for the Java logical font \"" + logicalName + "\", which may have unexpected appearance or behavior. Re-enable the \""+ realName +"\" font to remove this warning.");
if (FontUtilities.debugFonts()) {
FontUtilities.logSevere(
"The fonts \"" + realName + "\" and \"" + fallbackName +
"\" are not available for the Java logical font \"" + logicalName +
"\", which may have unexpected appearance or behavior. Re-enable the \""+
realName +"\" font to remove this warning.");
}
return null;
}
@ -261,7 +267,12 @@ public final class CFontManager extends SunFontManager {
family = FontFamily.getFamily(fallbackName);
if (family != null){
System.err.println("Warning: the font \"" + realName + "\" is not available, so \"" + fallbackName + "\" has been substituted, but may have unexpected appearance or behavor. Re-enable the \""+ realName +"\" font to remove this warning.");
if (FontUtilities.debugFonts()) {
FontUtilities.logWarning(
"The font \"" + realName + "\" is not available, so \"" + fallbackName +
"\" has been substituted, but may have unexpected appearance or behavor. Re-enable the \"" +
realName +"\" font to remove this warning.");
}
return family;
}

@ -0,0 +1,51 @@
/*
* Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 8273358
* @summary Verify logical fonts are as expected.
* @run main/othervm LogicalFontsTest
*/
import java.awt.Font;
public class LogicalFontsTest {
public static void main(String[] args) {
test(Font.SANS_SERIF);
test(Font.SERIF);
test(Font.MONOSPACED);
test(Font.DIALOG);
test(Font.DIALOG_INPUT);
}
static void test(String fontName) {
System.out.println("name="+fontName);
Font font = new Font(fontName, Font.PLAIN, 12);
System.out.println("font = " + font);
if (!fontName.equalsIgnoreCase(font.getFamily())) {
throw new RuntimeException("Requested " + fontName + " but got " + font);
}
}
}