diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.java index 53ff6cdf5f1e..62d5534a218a 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.java @@ -51,6 +51,8 @@ import com.intellij.util.IJSwingUtilities; import com.intellij.util.ObjectUtils; import com.intellij.util.PlatformUtils; import com.intellij.util.containers.ContainerUtil; +import com.intellij.util.ui.JBFont; +import com.intellij.util.ui.JBUI; import com.intellij.util.ui.UIUtil; import org.jdom.Element; import org.jetbrains.annotations.NonNls; @@ -718,7 +720,18 @@ public final class LafManagerImpl extends LafManager implements ApplicationCompo } private void patchLafFonts(UIDefaults uiDefaults) { - if (UISettings.getInstance().OVERRIDE_NONIDEA_LAF_FONTS) { + if (JBUI.isHiDPI()) { + HashMap newFonts = new HashMap(); + for (Object key : uiDefaults.keySet().toArray()) { + Object val = uiDefaults.get(key); + if (val instanceof Font) { + newFonts.put(key, JBFont.create((Font)val)); + } + } + for (Map.Entry entry : newFonts.entrySet()) { + uiDefaults.put(entry.getKey(), entry.getValue()); + } + } else if (UISettings.getInstance().OVERRIDE_NONIDEA_LAF_FONTS) { storeOriginalFontDefaults(uiDefaults); initFontDefaults(uiDefaults, myUiSettings.FONT_FACE, myUiSettings.FONT_SIZE); }