From 6b2e7f6d133ae636849b4fbb5332ea820bd48858 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Tue, 12 Mar 2019 18:08:49 +0300 Subject: [PATCH] IDEA-205194 When I open a task with "create branch" option checked IDE tires to create a branch twice in a row --- .../src/com/intellij/tasks/impl/TaskManagerImpl.java | 8 ++++++-- .../src/com/intellij/tasks/actions/OpenTaskDialog.java | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/platform/tasks-platform-impl/src/com/intellij/tasks/impl/TaskManagerImpl.java b/platform/tasks-platform-impl/src/com/intellij/tasks/impl/TaskManagerImpl.java index dec5da5e0fee..5ec137d770c6 100644 --- a/platform/tasks-platform-impl/src/com/intellij/tasks/impl/TaskManagerImpl.java +++ b/platform/tasks-platform-impl/src/com/intellij/tasks/impl/TaskManagerImpl.java @@ -317,6 +317,10 @@ public final class TaskManagerImpl extends TaskManager implements PersistentStat @Override public LocalTask activateTask(@NotNull final Task origin, boolean clearContext) { + return activateTask(origin, clearContext, false); + } + + public LocalTask activateTask(@NotNull final Task origin, boolean clearContext, boolean newTask) { LocalTask activeTask = getActiveTask(); if (origin.equals(activeTask)) return activeTask; @@ -330,11 +334,11 @@ public final class TaskManagerImpl extends TaskManager implements PersistentStat final LocalTask task = doActivate(origin, true); - restoreVcsContext(task); + restoreVcsContext(task, newTask); return task; } - private void restoreVcsContext(LocalTask task) { + private void restoreVcsContext(LocalTask task, boolean newTask) { if (!isVcsEnabled()) return; diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/OpenTaskDialog.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/OpenTaskDialog.java index 2abc6338791f..9d21cc5e9f54 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/OpenTaskDialog.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/OpenTaskDialog.java @@ -141,7 +141,7 @@ public class OpenTaskDialog extends DialogWrapper { for (TaskDialogPanel panel : myPanels) { panel.commit(); } - taskManager.activateTask(myTask, isClearContext()); + taskManager.activateTask(myTask, isClearContext(), true); if (myTask.getType() == TaskType.EXCEPTION && AnalyzeTaskStacktraceAction.hasTexts(myTask)) { AnalyzeTaskStacktraceAction.analyzeStacktrace(myTask, myProject); }