IDEA-96110 Disabled icons are double-sized under Retina

This commit is contained in:
Konstantin Bulenkov
2012-11-28 19:28:51 +01:00
parent e2c919a549
commit c72fa83612
2 changed files with 8 additions and 4 deletions
@@ -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;
@@ -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");