diff --git a/platform/util/src/com/intellij/openapi/util/IconLoader.java b/platform/util/src/com/intellij/openapi/util/IconLoader.java index ddfe925687e2..c743fb2e2855 100644 --- a/platform/util/src/com/intellij/openapi/util/IconLoader.java +++ b/platform/util/src/com/intellij/openapi/util/IconLoader.java @@ -20,6 +20,7 @@ import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.util.text.StringUtil; import com.intellij.reference.SoftReference; import com.intellij.util.ImageLoader; +import com.intellij.util.RetinaImage; import com.intellij.util.containers.ConcurrentHashMap; import com.intellij.util.containers.WeakHashMap; import com.intellij.util.ui.UIUtil; @@ -248,16 +249,19 @@ public final class IconLoader { LOG.error(icon); // # 22481 return EMPTY_ICON; } - final BufferedImage image = UIUtil.createImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_ARGB); + final int scale = UIUtil.isRetina() ? 2 : 1; + @SuppressWarnings("UndesirableClassUsage") + final BufferedImage image = new BufferedImage(scale*icon.getIconWidth(), scale*icon.getIconHeight(), BufferedImage.TYPE_INT_ARGB); final Graphics2D graphics = image.createGraphics(); graphics.setColor(UIUtil.TRANSPARENT_COLOR); graphics.fillRect(0, 0, icon.getIconWidth(), icon.getIconHeight()); + graphics.scale(scale, scale); icon.paintIcon(LabelHolder.ourFakeComponent, graphics, 0, 0); graphics.dispose(); - - disabledIcon = new MyImageIcon(createDisabled(image)); + final Image img = UIUtil.isRetina() ? RetinaImage.createFrom(createDisabled(image), 2, ImageLoader.ourComponent) : image; + disabledIcon = new MyImageIcon(img); ourIcon2DisabledIcon.put(icon, disabledIcon); } return disabledIcon; diff --git a/platform/util/src/com/intellij/util/ImageLoader.java b/platform/util/src/com/intellij/util/ImageLoader.java index bbe37ee0cfee..f7c72e873419 100644 --- a/platform/util/src/com/intellij/util/ImageLoader.java +++ b/platform/util/src/com/intellij/util/ImageLoader.java @@ -39,7 +39,7 @@ import java.util.List; @Deprecated public class ImageLoader implements Serializable { - private static final Component ourComponent = new Component() { + public static final Component ourComponent = new Component() { }; private static final Logger LOG = Logger.getInstance("#com.intellij.util.ImageLoader");