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 929d03d28db0..53ff6cdf5f1e 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 @@ -243,7 +243,7 @@ public final class LafManagerImpl extends LafManager implements ApplicationCompo @Override public void run() { fixGtkPopupStyle(); - patchOptionPaneIcons(UIManager.getLookAndFeelDefaults()); + patchGtkDefaults(UIManager.getLookAndFeelDefaults()); } }); } @@ -535,7 +535,7 @@ public final class LafManagerImpl extends LafManager implements ApplicationCompo patchLafFonts(uiDefaults); - patchOptionPaneIcons(uiDefaults); + patchGtkDefaults(uiDefaults); fixSeparatorColor(uiDefaults); @@ -695,13 +695,12 @@ public final class LafManagerImpl extends LafManager implements ApplicationCompo } } - private static void patchOptionPaneIcons(UIDefaults defaults) { + private static void patchGtkDefaults(UIDefaults defaults) { if (!UIUtil.isUnderGTKLookAndFeel()) return; Map map = ContainerUtil.newHashMap( Arrays.asList("OptionPane.errorIcon", "OptionPane.informationIcon", "OptionPane.warningIcon", "OptionPane.questionIcon"), Arrays.asList(AllIcons.General.ErrorDialog, AllIcons.General.InformationDialog, AllIcons.General.WarningDialog, AllIcons.General.QuestionDialog)); - // GTK+ L&F keeps icons hidden in style SynthStyle style = SynthLookAndFeel.getStyle(new JOptionPane(""), Region.DESKTOP_ICON); for (String key : map.keySet()) { @@ -710,6 +709,12 @@ public final class LafManagerImpl extends LafManager implements ApplicationCompo Object icon = style == null ? null : style.get(null, key); defaults.put(key, icon instanceof Icon ? icon : map.get(key)); } + + Color fg = defaults.getColor("Label.foreground"); + Color bg = defaults.getColor("Label.background"); + if (fg != null && bg != null) { + defaults.put("Label.disabledForeground", UIUtil.mix(fg, bg, 0.5)); + } } private void patchLafFonts(UIDefaults uiDefaults) { diff --git a/platform/util/src/com/intellij/util/ui/UIUtil.java b/platform/util/src/com/intellij/util/ui/UIUtil.java index f9895a149168..47f5990554a3 100644 --- a/platform/util/src/com/intellij/util/ui/UIUtil.java +++ b/platform/util/src/com/intellij/util/ui/UIUtil.java @@ -1248,6 +1248,7 @@ public class UIUtil { public static Color shade(final Color c, final double factor, final double alphaFactor) { assert factor >= 0 : factor; + //noinspection UseJBColor return new Color( Math.min((int)Math.round(c.getRed() * factor), 255), Math.min((int)Math.round(c.getGreen() * factor), 255), @@ -1259,6 +1260,7 @@ public class UIUtil { public static Color mix(final Color c1, final Color c2, final double factor) { assert 0 <= factor && factor <= 1.0 : factor; final double backFactor = 1.0 - factor; + //noinspection UseJBColor return new Color( Math.min((int)Math.round(c1.getRed() * backFactor + c2.getRed() * factor), 255), Math.min((int)Math.round(c1.getGreen() * backFactor + c2.getGreen() * factor), 255),