diff --git a/platform/lang-impl/src/com/intellij/ide/util/TreeFileChooserDialog.java b/platform/lang-impl/src/com/intellij/ide/util/TreeFileChooserDialog.java index 7835444472c9..a414b0628a8f 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/TreeFileChooserDialog.java +++ b/platform/lang-impl/src/com/intellij/ide/util/TreeFileChooserDialog.java @@ -33,6 +33,7 @@ import com.intellij.ide.util.treeView.NodeRenderer; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.fileTypes.FileType; +import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.util.Condition; @@ -367,7 +368,7 @@ public final class TreeFileChooserDialog extends DialogWrapper implements TreeFi return myTree; } - private final class MyGotoFileModel implements ChooseByNameModel { + private final class MyGotoFileModel implements ChooseByNameModel, DumbAware { private final int myMaxSize = WindowManagerEx.getInstanceEx().getFrame(myProject).getSize().width; @Override @NotNull diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java index 62944c67c93e..858d2144dd88 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java @@ -1524,12 +1524,17 @@ public abstract class ChooseByNameBase { @Override public void runBackgroundProcess(@NotNull final ProgressIndicator indicator) { - DumbService.getInstance(myProject).runReadActionInSmartMode(new Runnable() { + Runnable r = new Runnable() { @Override public void run() { computeInReadAction(indicator); } - }); + }; + if (DumbService.isDumbAware(myModel)) { + ApplicationManager.getApplication().runReadAction(r); + } else { + DumbService.getInstance(myProject).runReadActionInSmartMode(r); + } } @Override diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java index 1a4bfa19b67f..2838ab7f0e54 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java @@ -32,6 +32,7 @@ import com.intellij.openapi.keymap.KeymapManager; import com.intellij.openapi.keymap.KeymapUtil; import com.intellij.openapi.options.Configurable; import com.intellij.openapi.options.SearchableConfigurable; +import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.SystemInfo; @@ -62,7 +63,7 @@ import java.util.List; import static com.intellij.ui.SimpleTextAttributes.STYLE_PLAIN; import static com.intellij.ui.SimpleTextAttributes.STYLE_SEARCH_MATCH; -public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, Comparator, EdtSortingModel { +public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel, Comparator, EdtSortingModel, DumbAware { @Nullable private final Project myProject; private final Component myContextComponent; diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoFileModel.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoFileModel.java index 8ba19a815e44..78af0bd1c246 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoFileModel.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoFileModel.java @@ -25,6 +25,7 @@ import com.intellij.navigation.NavigationItem; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.fileTypes.FileType; +import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.vfs.VirtualFile; @@ -40,7 +41,7 @@ import java.util.Collection; /** * Model for "Go to | File" action */ -public class GotoFileModel extends FilteringGotoByModel { +public class GotoFileModel extends FilteringGotoByModel implements DumbAware { private final int myMaxSize; public GotoFileModel(@NotNull Project project) { diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/GotoTaskAction.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/GotoTaskAction.java index 40a9cf04afbc..4710e7a0a3e3 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/GotoTaskAction.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/GotoTaskAction.java @@ -118,7 +118,7 @@ public class GotoTaskAction extends GotoActionBase implements DumbAware { }); } - private static class GotoTaskPopupModel extends SimpleChooseByNameModel { + private static class GotoTaskPopupModel extends SimpleChooseByNameModel implements DumbAware { private ListCellRenderer myListCellRenderer;