diff --git a/platform/platform-impl/src/com/intellij/ui/SwingActionDelegate.java b/platform/platform-impl/src/com/intellij/ui/SwingActionDelegate.java index 3b77cdda0f5e..acf9cc640433 100644 --- a/platform/platform-impl/src/com/intellij/ui/SwingActionDelegate.java +++ b/platform/platform-impl/src/com/intellij/ui/SwingActionDelegate.java @@ -3,6 +3,7 @@ package com.intellij.ui; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.project.DumbAware; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import javax.swing.Action; @@ -17,6 +18,7 @@ import static com.intellij.util.ui.UIUtil.getParentOfType; * @author Sergey.Malenkov */ public class SwingActionDelegate extends AnAction implements DumbAware { + private static final Object DISABLED = new Object(); private final String mySwingActionId; protected SwingActionDelegate(String actionId) { @@ -42,7 +44,13 @@ public class SwingActionDelegate extends AnAction implements DumbAware { private Action getSwingAction(JComponent component) { if (component == null) return null; + if (Boolean.TRUE.equals(component.getClientProperty(DISABLED))) return null; ActionMap map = component.getActionMap(); return map == null ? null : map.get(mySwingActionId); } + + @ApiStatus.Experimental + public static void disableFor(@NotNull JComponent component) { + component.putClientProperty(DISABLED, true); + } }