From fb1a2e7662123e75b6589eb8a244590b3c8bd64d Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Wed, 7 Oct 2015 17:08:13 +0300 Subject: [PATCH] don't use workaround for a Mac OS font display issue with JDK 1.8.0_60 or later - the issue is fixed there --- .../openapi/editor/impl/ComplementaryFontsRegistry.java | 6 +++--- platform/util/src/com/intellij/Patches.java | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/ComplementaryFontsRegistry.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/ComplementaryFontsRegistry.java index b295643c0cd9..7e5f99c602c9 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/ComplementaryFontsRegistry.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/ComplementaryFontsRegistry.java @@ -15,13 +15,13 @@ */ package com.intellij.openapi.editor.impl; +import com.intellij.Patches; import com.intellij.ide.ui.AntialiasingType; import com.intellij.ide.ui.UISettings; import com.intellij.ide.ui.UISettingsListener; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.editor.colors.FontPreferences; import com.intellij.openapi.util.Pair; -import com.intellij.openapi.util.SystemInfo; import gnu.trove.TIntHashSet; import org.intellij.lang.annotations.JdkConstants; import org.jetbrains.annotations.NonNls; @@ -111,7 +111,7 @@ public class ComplementaryFontsRegistry { if (ApplicationManager.getApplication().isUnitTestMode()) { ourFontNames.add("Monospaced"); } else { - if (SystemInfo.isMac) { + if (Patches.JDK_MAC_FONT_STYLE_BUG) { fillStyledFontMap(); } String[] fontNames = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); @@ -199,7 +199,7 @@ public class ComplementaryFontsRegistry { @Nullable private static FontInfo doGetFontAbleToDisplay(char c, int size, @JdkConstants.FontStyle int style, @NotNull String defaultFontFamily) { synchronized (lock) { - if (SystemInfo.isMac && style > 0 && style < 4) { + if (Patches.JDK_MAC_FONT_STYLE_BUG && style > 0 && style < 4) { Pair[] replacement = ourStyledFontMap.get(defaultFontFamily); if (replacement != null) { defaultFontFamily = replacement[style].first; diff --git a/platform/util/src/com/intellij/Patches.java b/platform/util/src/com/intellij/Patches.java index 1c9294a4615f..dfbbce137097 100644 --- a/platform/util/src/com/intellij/Patches.java +++ b/platform/util/src/com/intellij/Patches.java @@ -129,4 +129,10 @@ public class Patches { * See JDK-8042123 */ public static final boolean JDK_BUG_ID_8042123 = !SystemInfo.isJavaVersionAtLeast("1.8.0_40"); + + /** + * Older JDK versions could mistakenly use derived italics font, when genuine italics font was available in the system. + * The issue was fixed in JDK 1.8.0_60 as part of JDK-8064833. + */ + public static final boolean JDK_MAC_FONT_STYLE_BUG = SystemInfo.isMac && !SystemInfo.isJavaVersionAtLeast("1.8.0_60"); }