From 035df44b846b66cec42400ddc3187c79cbfe5ebb Mon Sep 17 00:00:00 2001 From: Anton Tarasov Date: Thu, 3 Nov 2016 14:53:40 +0300 Subject: [PATCH] [followup] Add private CachedImageIcon.asDisabledIcon() to have it auto-JBUI-scalable Need all CachedImageIcon's fields in a copy --- .../com/intellij/openapi/util/IconLoader.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/platform/util/src/com/intellij/openapi/util/IconLoader.java b/platform/util/src/com/intellij/openapi/util/IconLoader.java index 900f336b9206..9014099f0ea6 100644 --- a/platform/util/src/com/intellij/openapi/util/IconLoader.java +++ b/platform/util/src/com/intellij/openapi/util/IconLoader.java @@ -383,14 +383,20 @@ public final class IconLoader { private ImageFilter[] myFilters; private final MyScaledIconsCache myScaledIconsCache = new MyScaledIconsCache(); - private CachedImageIcon(@NotNull URL url, @NotNull ImageFilter[] filters) { - myUrl = url; - dark = USE_DARK_ICONS; - myFilters = filters; + private CachedImageIcon(@NotNull CachedImageIcon icon) { + myRealIcon = null; // to be computed + myOriginalPath = icon.myOriginalPath; + myClassLoader = icon.myClassLoader; + myUrl = icon.myUrl; + dark = icon.dark; + numberOfPatchers = icon.numberOfPatchers; + myFilters = icon.myFilters; } public CachedImageIcon(@NotNull URL url) { - this(url, new ImageFilter[] {IMAGE_FILTER}); + myUrl = url; + dark = USE_DARK_ICONS; + myFilters = new ImageFilter[] {IMAGE_FILTER}; } private void setGlobalFilter(ImageFilter globalFilter) { @@ -492,7 +498,9 @@ public final class IconLoader { } private Icon asDisabledIcon() { - return new CachedImageIcon(myUrl, new ImageFilter[] {getGlobalFilter(), UIUtil.getGrayFilter()}); + CachedImageIcon icon = new CachedImageIcon(this); + icon.myFilters = new ImageFilter[] {getGlobalFilter(), UIUtil.getGrayFilter()}; + return icon; } private class MyScaledIconsCache {