diff --git a/platform/lang-impl/src/com/intellij/execution/actions/RunContextAction.java b/platform/lang-impl/src/com/intellij/execution/actions/RunContextAction.java index 5896941b7aa5..bcae68b50600 100644 --- a/platform/lang-impl/src/com/intellij/execution/actions/RunContextAction.java +++ b/platform/lang-impl/src/com/intellij/execution/actions/RunContextAction.java @@ -37,7 +37,9 @@ public class RunContextAction extends BaseRunConfigurationAction { final RunManagerEx runManager = (RunManagerEx)context.getRunManager(); if (configuration == null) { configuration = context.getConfiguration(); - if (configuration == null) return; + if (configuration == null) { + return; + } runManager.setTemporaryConfiguration(configuration); } runManager.setActiveConfiguration(configuration); @@ -63,7 +65,22 @@ public class RunContextAction extends BaseRunConfigurationAction { configuration = context.getConfiguration(); } - final boolean b = configuration != null && getRunner(configuration.getConfiguration()) != null; + boolean b = true; + if (configuration == null) { + b = false; + } + else { + final ProgramRunner runner = getRunner(configuration.getConfiguration()); + if (runner == null) { + b = false; + } + else { + if (ExecutorRegistry.getInstance().isStarting(context.getProject(), myExecutor.getId(), runner.getRunnerId())) { + b = false; + } + } + } + presentation.setEnabled(b); presentation.setVisible(b); } diff --git a/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java b/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java index 6dae50b9f732..e995243dd5c5 100644 --- a/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java +++ b/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java @@ -15,10 +15,7 @@ */ package com.intellij.execution.runners; -import com.intellij.execution.ExecutionBundle; -import com.intellij.execution.ExecutionException; -import com.intellij.execution.Executor; -import com.intellij.execution.RunCanceledByUserException; +import com.intellij.execution.*; import com.intellij.execution.process.ProcessHandler; import com.intellij.execution.ui.RunContentDescriptor; import com.intellij.ide.DataManager; @@ -67,6 +64,9 @@ public class RestartAction extends AnAction implements DumbAware { private void doRestart(final DataContext dataContext) { final Project project = PlatformDataKeys.PROJECT.getData(dataContext); + if (ExecutorRegistry.getInstance().isStarting(project, myExecutor.getId(), myRunner.getRunnerId())) { + return; + } try { final ExecutionEnvironment old = myEnvironment; myRunner.execute(myExecutor, new ExecutionEnvironment(old.getRunProfile(), project, old.getRunnerSettings(), @@ -87,7 +87,7 @@ public class RestartAction extends AnAction implements DumbAware { myProcessHandler = null; // already terminated } - presentation.setEnabled(!isRunning /*&& myRunner.canRun(, myProfile)*/); + presentation.setEnabled(!isRunning /*&& myRunner.canRun(, myProfile)*/ && !ExecutorRegistry.getInstance().isStarting(myEnvironment.getProject(), myExecutor.getId(), myRunner.getRunnerId())); } public void registerShortcut(final JComponent component) {