From 83d6076f9426645df6f63c2b592080b1e31b9be6 Mon Sep 17 00:00:00 2001 From: Eugene Kudelevsky Date: Wed, 21 Mar 2012 17:44:36 +0400 Subject: [PATCH] remove document listener if task is rejected --- .../codeInsight/daemon/impl/ExternalToolPass.java | 14 +++++++++++++- .../daemon/impl/ExternalToolPassFactory.java | 11 +++-------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ExternalToolPass.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ExternalToolPass.java index df0cea32c0c2..d4e0af3d53bb 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ExternalToolPass.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ExternalToolPass.java @@ -32,6 +32,7 @@ import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.psi.FileViewProvider; import com.intellij.psi.PsiFile; import com.intellij.util.containers.HashMap; +import com.intellij.util.ui.update.Update; import org.jetbrains.annotations.NotNull; import java.util.*; @@ -163,7 +164,18 @@ public class ExternalToolPass extends TextEditorHighlightingPass { r.run(); } else { - myExternalToolPassFactory.scheduleExternalActivity(myFile, r); + myExternalToolPassFactory.scheduleExternalActivity(new Update(myFile) { + @Override + public void run() { + r.run(); + } + + @Override + public void setRejected() { + super.setRejected(); + doFinish(); + } + }); } } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ExternalToolPassFactory.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ExternalToolPassFactory.java index f719f5e89cf4..a659e5c3396f 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ExternalToolPassFactory.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ExternalToolPassFactory.java @@ -78,12 +78,7 @@ public class ExternalToolPassFactory extends AbstractProjectComponent implements return false; } - void scheduleExternalActivity(@NotNull PsiFile file, @NotNull final Runnable r) { - myExternalActivitiesQueue.queue(new Update(file) { - @Override - public void run() { - r.run(); - } - }); - } + void scheduleExternalActivity(@NotNull Update update) { + myExternalActivitiesQueue.queue(update); + } }