IDEA-126562 Select theme dialog error
authorVassiliy <vassiliy.kudryashov@jetbrains.com>
Wed, 2 Jul 2014 09:08:44 +0000 (13:08 +0400)
committerVassiliy <vassiliy.kudryashov@jetbrains.com>
Wed, 2 Jul 2014 09:09:52 +0000 (13:09 +0400)
platform/core-api/src/com/intellij/util/IconUtil.java
platform/platform-impl/src/com/intellij/ide/customize/CustomizeUIThemeStepPanel.java

index 28ff9df4186b31aed0957e4ae560503017ef67f3..07b5fca6b7e45981fd0104c5fd95a1d9f516e69d 100644 (file)
@@ -371,6 +371,13 @@ public class IconUtil {
   }
 
   public static Icon scale(@NotNull final Icon source, double _scale) {
+    final int hiDPIscale;
+    if (source instanceof ImageIcon) {
+      Image image = ((ImageIcon)source).getImage();
+      hiDPIscale = RetinaImage.isAppleHiDPIScaledImage(image) || image instanceof JBHiDPIScaledImage ? 2 : 1;
+    } else {
+      hiDPIscale = 1;
+    }
     final double scale = Math.min(32, Math.max(.1, _scale));
     return new Icon() {
       @Override
@@ -389,12 +396,12 @@ public class IconUtil {
 
       @Override
       public int getIconWidth() {
-        return (int)(source.getIconWidth() * scale);
+        return (int)(source.getIconWidth() * scale) / hiDPIscale;
       }
 
       @Override
       public int getIconHeight() {
-        return (int)(source.getIconHeight() * scale);
+        return (int)(source.getIconHeight() * scale) / hiDPIscale;
       }
     };
 
index 5a1996a2ca11ac9c23406bfb0e69ebb4a86020ab..d450cf4542914f6852d2068c5c6dda0344ffbd3d 100644 (file)
@@ -90,7 +90,7 @@ public class CustomizeUIThemeStepPanel extends AbstractCustomizeWizardStep {
       });
       panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
       panel.add(radioButton, myColumnMode ? BorderLayout.WEST : BorderLayout.NORTH);
-      final JLabel label = new JLabel(myColumnMode ? IconUtil.scale(IconUtil.cropIcon(icon, icon.getIconWidth() * 2 / 3, icon.getIconHeight() * 2 / 3), .75) : icon);
+      final JLabel label = new JLabel(myColumnMode ? IconUtil.scale(IconUtil.cropIcon(icon, icon.getIconWidth() * 2 / 3, icon.getIconHeight() * 2 / 3), .5) : icon);
       label.setVerticalAlignment(SwingConstants.TOP);
       label.setHorizontalAlignment(SwingConstants.RIGHT);
       panel.add(label, BorderLayout.CENTER);