From 22626257b4b4afc356c088fd2cd14139d93f29ea Mon Sep 17 00:00:00 2001 From: Peter Gromov Date: Tue, 8 Sep 2009 11:25:02 +0400 Subject: [PATCH] don't go dumb immediately on project start --- .../intellij/openapi/project/DumbServiceImpl.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/project/DumbServiceImpl.java b/platform/platform-impl/src/com/intellij/openapi/project/DumbServiceImpl.java index bd31a6cea5f3..489a7dbca39c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/project/DumbServiceImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/project/DumbServiceImpl.java @@ -5,6 +5,7 @@ package com.intellij.openapi.project; import com.intellij.ide.startup.impl.StartupManagerImpl; +import com.intellij.ide.startup.StartupManagerEx; import com.intellij.openapi.application.*; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.ProgressManager; @@ -96,13 +97,20 @@ public class DumbServiceImpl extends DumbService { } }; - final boolean wasDumb = myDumb.getAndSet(true); + //todo always go dumb immediately after those who request indices in startup activity are gone (e.g. JS indices) + final boolean goDumbImmediately = ((StartupManagerEx)StartupManager.getInstance(myProject)).startupActivityPassed(); + final boolean wasDumb = goDumbImmediately ? myDumb.getAndSet(true) : false; invokeOnEDT(new DumbAwareRunnable() { public void run() { if (myProject.isDisposed()) return; - if (!wasDumb) { + boolean wasDumbEx = wasDumb; + if (!goDumbImmediately) { + wasDumbEx = myDumb.getAndSet(true); + } + + if (!wasDumbEx) { myPublisher.enteredDumbMode(); update.run(); } else {