diff --git a/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ActionUtil.java b/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ActionUtil.java index 984996ba24dc..23d612accba0 100644 --- a/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ActionUtil.java +++ b/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ActionUtil.java @@ -316,13 +316,22 @@ public class ActionUtil { return a1; } - public static void invokeAction(@NotNull AnAction action, @Nullable InputEvent inputEvent, @NotNull Component component, @NotNull String place, @Nullable Runnable onDone) { + public static void invokeAction(@NotNull AnAction action, + @NotNull Component component, + @NotNull String place, + @Nullable InputEvent inputEvent, + @Nullable Runnable onDone) { + invokeAction(action, DataManager.getInstance().getDataContext(component), place, inputEvent, onDone); + } + + public static void invokeAction(@NotNull AnAction action, + @NotNull DataContext dataContext, + @NotNull String place, + @Nullable InputEvent inputEvent, + @Nullable Runnable onDone) { Presentation presentation = action.getTemplatePresentation().clone(); - AnActionEvent event = new AnActionEvent(inputEvent, DataManager.getInstance().getDataContext(component), - place, - presentation, - ActionManager.getInstance(), - 0); + AnActionEvent event = new AnActionEvent( + inputEvent, dataContext, place, presentation, ActionManager.getInstance(), 0); performDumbAwareUpdate(false, action, event, true); if (event.getPresentation().isEnabled() && event.getPresentation().isVisible()) { action.actionPerformed(event); @@ -342,12 +351,13 @@ public class ActionUtil { LOG.warn("Can not find action by id " + actionId); return; } - invokeAction(action, null, component, place, null); + invokeAction(action, component, place, null, null); } }; } + @NotNull public static ActionListener createActionListener(@NotNull AnAction action, @NotNull Component component, @NotNull String place) { - return e -> invokeAction(action, null, component, place, null); + return e -> invokeAction(action, component, place, null, null); } } diff --git a/platform/platform-api/src/com/intellij/ui/components/labels/ActionLink.java b/platform/platform-api/src/com/intellij/ui/components/labels/ActionLink.java index 37c959afd43f..7a1629e16c40 100644 --- a/platform/platform-api/src/com/intellij/ui/components/labels/ActionLink.java +++ b/platform/platform-api/src/com/intellij/ui/components/labels/ActionLink.java @@ -57,7 +57,7 @@ public class ActionLink extends LinkLabel implements DataProvider { setListener(new LinkListener() { @Override public void linkSelected(LinkLabel aSource, Object aLinkData) { - ActionUtil.invokeAction(myAction, myEvent, ActionLink.this, myPlace, onDone); + ActionUtil.invokeAction(myAction, ActionLink.this, myPlace, myEvent, onDone); } }, null); myAction = action;