From d93d498ea633a007a94ccdb43f2a259f31f85ef7 Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 21 Feb 2017 14:25:28 +0100 Subject: [PATCH] hide "add import" popup when dumb mode starts (EA-97319 - INRE: FileBasedIndexImpl.handleDumbMode) --- .../codeInsight/daemon/impl/actions/AddImportAction.java | 2 ++ .../intellij/codeInsight/navigation/NavigationUtil.java | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/AddImportAction.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/AddImportAction.java index caf4943e655b..c136fae1d23e 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/AddImportAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/actions/AddImportAction.java @@ -24,6 +24,7 @@ import com.intellij.codeInsight.FileModificationService; import com.intellij.codeInsight.actions.OptimizeImportsProcessor; import com.intellij.codeInsight.daemon.QuickFixBundle; import com.intellij.codeInsight.hint.QuestionAction; +import com.intellij.codeInsight.navigation.NavigationUtil; import com.intellij.ide.util.DefaultPsiElementCellRenderer; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.CommandProcessor; @@ -159,6 +160,7 @@ public class AddImportAction implements QuestionAction { } }; popup.showInBestPositionFor(myEditor); + NavigationUtil.hidePopupIfDumbModeStarts(popup, myProject); } @Nullable diff --git a/platform/lang-impl/src/com/intellij/codeInsight/navigation/NavigationUtil.java b/platform/lang-impl/src/com/intellij/codeInsight/navigation/NavigationUtil.java index 1e6c6754d944..7c27cb228f51 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/navigation/NavigationUtil.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/navigation/NavigationUtil.java @@ -144,7 +144,12 @@ public final class NavigationUtil { builder.getScrollPane().setBorder(null); builder.getScrollPane().setViewportBorder(null); - Project project = elements[0].getProject(); + hidePopupIfDumbModeStarts(popup, elements[0].getProject()); + + return popup; + } + + public static void hidePopupIfDumbModeStarts(@NotNull JBPopup popup, @NotNull Project project) { if (!DumbService.isDumb(project)) { project.getMessageBus().connect(popup).subscribe(DumbService.DUMB_MODE, new DumbService.DumbModeListener() { @Override @@ -153,8 +158,6 @@ public final class NavigationUtil { } }); } - - return popup; } public static boolean activateFileWithPsiElement(@NotNull PsiElement elt) {