From 7035aa020102288fe0cf140b5e3d2e24e85e4a5b Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Mon, 18 Nov 2013 19:12:37 +0100 Subject: [PATCH] wait for user input out of read action (IDEA-115944, consequence of IDEA-115258) --- .../src/com/intellij/find/impl/FindInProjectUtil.java | 5 +++++ .../src/com/intellij/usages/impl/UsageViewManagerImpl.java | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/find/impl/FindInProjectUtil.java b/platform/lang-impl/src/com/intellij/find/impl/FindInProjectUtil.java index e99004ba2db0..9721e1b00b36 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/FindInProjectUtil.java +++ b/platform/lang-impl/src/com/intellij/find/impl/FindInProjectUtil.java @@ -36,6 +36,8 @@ import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.ProgressManager; +import com.intellij.openapi.progress.util.ProgressWrapper; +import com.intellij.openapi.progress.util.TooManyUsagesStatus; import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.IndexNotReadyException; import com.intellij.openapi.project.Project; @@ -282,7 +284,10 @@ public class FindInProjectUtil { final int[] offset = {0}; int count = 0; int found; + ProgressIndicator indicator = ProgressWrapper.unwrap(ProgressManager.getInstance().getProgressIndicator()); + TooManyUsagesStatus tooManyUsagesStatus = TooManyUsagesStatus.getFrom(indicator); do { + tooManyUsagesStatus.pauseProcessingIfTooManyUsages(); // wait for user out of read action found = ApplicationManager.getApplication().runReadAction(new Computable() { @Override @NotNull diff --git a/platform/usageView/src/com/intellij/usages/impl/UsageViewManagerImpl.java b/platform/usageView/src/com/intellij/usages/impl/UsageViewManagerImpl.java index aee2f05be433..7b14c972deed 100644 --- a/platform/usageView/src/com/intellij/usages/impl/UsageViewManagerImpl.java +++ b/platform/usageView/src/com/intellij/usages/impl/UsageViewManagerImpl.java @@ -353,7 +353,6 @@ public class UsageViewManagerImpl extends UsageViewManager { ProgressIndicator indicator = ProgressWrapper.unwrap(ProgressManager.getInstance().getProgressIndicator()); if (indicator != null && indicator.isCanceled()) return false; TooManyUsagesStatus tooManyUsagesStatus = TooManyUsagesStatus.getFrom(indicator); - tooManyUsagesStatus.pauseProcessingIfTooManyUsages(); boolean incrementCounter = !isSelfUsage(usage, mySearchFor); if (incrementCounter) {