diff --git a/platform/lang-impl/src/com/intellij/execution/actions/RunConfigurationsComboBoxAction.java b/platform/lang-impl/src/com/intellij/execution/actions/RunConfigurationsComboBoxAction.java index 3f8306799cf8..4d3be38bb42b 100644 --- a/platform/lang-impl/src/com/intellij/execution/actions/RunConfigurationsComboBoxAction.java +++ b/platform/lang-impl/src/com/intellij/execution/actions/RunConfigurationsComboBoxAction.java @@ -3,11 +3,13 @@ package com.intellij.execution.actions; import com.intellij.execution.*; +import com.intellij.execution.impl.EditConfigurationsDialog; import com.intellij.execution.impl.RunManagerImpl; import com.intellij.icons.AllIcons; import com.intellij.ide.DataManager; import com.intellij.idea.ActionsBundle; import com.intellij.openapi.actionSystem.*; +import com.intellij.openapi.actionSystem.ex.ActionUtil; import com.intellij.openapi.actionSystem.ex.ComboBoxAction; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.project.DumbAware; @@ -136,6 +138,17 @@ public class RunConfigurationsComboBoxAction extends ComboBoxAction implements D return d; } + @Override + protected void doShiftClick() { + DataContext context = DataManager.getInstance().getDataContext(this); + final Project project = CommonDataKeys.PROJECT.getData(context); + if (project != null && !ActionUtil.isDumbMode(project)) { + new EditConfigurationsDialog(project).show(); + return; + } + super.doShiftClick(); + } + @Override protected void fireActionPerformed(ActionEvent event) { if (Boolean.TRUE.equals(presentation.getClientProperty(BUTTON_MODE))) { diff --git a/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ComboBoxAction.java b/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ComboBoxAction.java index c371ccd81317..fa3ba2b9d036 100644 --- a/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ComboBoxAction.java +++ b/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ComboBoxAction.java @@ -23,6 +23,7 @@ import com.intellij.ui.UserActivityProviderComponent; import com.intellij.ui.scale.JBUIScale; import com.intellij.util.ui.*; import com.intellij.util.ui.accessibility.ScreenReader; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -169,7 +170,11 @@ public abstract class ComboBoxAction extends AnAction implements CustomComponent public void mousePressed(final MouseEvent e) { if (SwingUtilities.isLeftMouseButton(e)) { e.consume(); - doClick(); + if (e.isShiftDown()) { + doShiftClick(); + } else { + doClick(); + } } } }); @@ -394,6 +399,11 @@ public abstract class ComboBoxAction extends AnAction implements CustomComponent setSize(getPreferredSize()); repaint(); } + + @ApiStatus.Experimental + protected void doShiftClick() { + doClick(); + } } protected Condition getPreselectCondition() { return null; }