diff --git a/platform/editor-ui-api/src/com/intellij/ide/ui/UISettings.java b/platform/editor-ui-api/src/com/intellij/ide/ui/UISettings.java index dd50aa9046fb..7654ef8bfdfb 100644 --- a/platform/editor-ui-api/src/com/intellij/ide/ui/UISettings.java +++ b/platform/editor-ui-api/src/com/intellij/ide/ui/UISettings.java @@ -296,10 +296,7 @@ public class UISettings extends SimpleModificationTracker implements PersistentS g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); } } - if (Registry.is("force.subpixel.hinting")) { - g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB); - g2d.setRenderingHint(RenderingHints.KEY_TEXT_LCD_CONTRAST, Registry.intValue("lcd.contrast.value")); - } + UIUtil.setHintingForLCDText(g2d); } /** diff --git a/platform/util/src/com/intellij/openapi/util/SystemInfo.java b/platform/util/src/com/intellij/openapi/util/SystemInfo.java index ef1acead508d..7fb56ca27b97 100644 --- a/platform/util/src/com/intellij/openapi/util/SystemInfo.java +++ b/platform/util/src/com/intellij/openapi/util/SystemInfo.java @@ -49,6 +49,7 @@ public class SystemInfo extends SystemInfoRt { public static final boolean isAppleJvm = isAppleJvm(); public static final boolean isOracleJvm = isOracleJvm(); public static final boolean isSunJvm = isSunJvm(); + public static final boolean isJetbrainsJvm = isJetbrainsJvm(); public static boolean isOsVersionAtLeast(@NotNull String version) { return StringUtil.compareVersionNumbers(OS_VERSION, version) >= 0; @@ -223,4 +224,9 @@ public class SystemInfo extends SystemInfoRt { final String vendor = SystemProperties.getJavaVmVendor(); return vendor != null && StringUtil.containsIgnoreCase(vendor, "Apple"); } + + private static boolean isJetbrainsJvm() { + final String vendor = SystemProperties.getJavaVendor(); + return vendor != null && StringUtil.containsIgnoreCase(vendor, "jetbrains"); + } } diff --git a/platform/util/src/com/intellij/util/SystemProperties.java b/platform/util/src/com/intellij/util/SystemProperties.java index b70b034edffe..7929dd1ff629 100644 --- a/platform/util/src/com/intellij/util/SystemProperties.java +++ b/platform/util/src/com/intellij/util/SystemProperties.java @@ -131,4 +131,8 @@ public class SystemProperties { return defaultValue; } + + public static String getJavaVendor() { + return System.getProperty("java.vendor"); + } } diff --git a/platform/util/src/com/intellij/util/ui/GraphicsUtil.java b/platform/util/src/com/intellij/util/ui/GraphicsUtil.java index d6285d3837d5..fdd86de13296 100644 --- a/platform/util/src/com/intellij/util/ui/GraphicsUtil.java +++ b/platform/util/src/com/intellij/util/ui/GraphicsUtil.java @@ -73,10 +73,7 @@ public class GraphicsUtil { enableAA ? RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HBGR : RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); } - if (Registry.is("force.subpixel.hinting")) { - g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB); - g.setRenderingHint(RenderingHints.KEY_TEXT_LCD_CONTRAST, Registry.intValue("lcd.contrast.value")); - } + UIUtil.setHintingForLCDText(g); } } diff --git a/platform/util/src/com/intellij/util/ui/UIUtil.java b/platform/util/src/com/intellij/util/ui/UIUtil.java index 8126b33293ba..3baa8c859b77 100644 --- a/platform/util/src/com/intellij/util/ui/UIUtil.java +++ b/platform/util/src/com/intellij/util/ui/UIUtil.java @@ -1679,13 +1679,16 @@ public class UIUtil { Map map = (Map)tk.getDesktopProperty("awt.font.desktophints"); if (map != null) { g2d.addRenderingHints(map); - if (Registry.is("force.subpixel.hinting")) { - g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB); - g2d.setRenderingHint(RenderingHints.KEY_TEXT_LCD_CONTRAST, Registry.intValue("lcd.contrast.value")); - } + setHintingForLCDText(g2d); } } + public static void setHintingForLCDText(Graphics2D g2d) { + if (SystemInfo.isJetbrainsJvm && Registry.is("force.subpixel.hinting")) { + g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB); + g2d.setRenderingHint(RenderingHints.KEY_TEXT_LCD_CONTRAST, Registry.intValue("lcd.contrast.value")); + } + } public static BufferedImage createImage(int width, int height, int type) { if (isRetina()) {