diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java index f2c4af96bda4..c1f91cd3cd1e 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java @@ -25,7 +25,10 @@ import com.intellij.ui.popup.PopupState; import com.intellij.ui.popup.WizardPopup; import com.intellij.ui.popup.util.PopupImplUtil; import com.intellij.util.ReflectionUtil; -import com.intellij.util.ui.*; +import com.intellij.util.ui.JBDimension; +import com.intellij.util.ui.JBInsets; +import com.intellij.util.ui.StartupUiUtil; +import com.intellij.util.ui.UIUtil; import com.intellij.util.ui.accessibility.AccessibleContextUtil; import com.intellij.util.ui.accessibility.ScreenReader; import org.jetbrains.annotations.NonNls; @@ -388,7 +391,11 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A @NotNull protected Icon getFallbackIcon(boolean enabled) { - return EmptyIcon.ICON_18; + Presentation p = getAction().getTemplatePresentation(); + Icon icon = Objects.requireNonNullElse(p.getIcon(), AllIcons.Toolbar.Unknown); + if (enabled) return icon; + if (p.getDisabledIcon() != null) return p.getDisabledIcon(); + return IconLoader.getDisabledIcon(icon); } public void updateIcon() { diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.java index d8a4414a192f..191edec3a39a 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarImpl.java @@ -17,7 +17,10 @@ import com.intellij.openapi.diagnostic.ControlFlowException; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.ui.popup.*; import com.intellij.openapi.ui.popup.util.PopupUtil; -import com.intellij.openapi.util.*; +import com.intellij.openapi.util.Disposer; +import com.intellij.openapi.util.Key; +import com.intellij.openapi.util.NlsContexts; +import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.wm.IdeFocusManager; import com.intellij.openapi.wm.ToolWindow; @@ -51,8 +54,10 @@ import javax.swing.border.Border; import java.awt.*; import java.awt.event.*; import java.awt.image.BufferedImage; +import java.util.ArrayList; +import java.util.LinkedHashSet; import java.util.List; -import java.util.*; +import java.util.Set; import java.util.concurrent.CancellationException; import java.util.concurrent.TimeUnit; import java.util.function.Function; @@ -552,21 +557,7 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar, QuickAct return buttonWithText; } - ActionButton actionButton = new ActionButton(action, presentation, place, minimumSize) { - @Override - protected DataContext getDataContext() { - return getToolbarDataContext(); - } - - @Override - protected @NotNull Icon getFallbackIcon(boolean enabled) { - Presentation p = getAction().getTemplatePresentation(); - Icon icon = Objects.requireNonNullElse(p.getIcon(), AllIcons.Toolbar.Unknown); - if (enabled) return icon; - if (p.getDisabledIcon() != null) return p.getDisabledIcon(); - return IconLoader.getDisabledIcon(icon); - } - }; + ActionButton actionButton = new ActionButton(action, presentation, place, minimumSize); applyToolbarLook(look, presentation, actionButton); return actionButton;