diff --git a/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java index 6ea2753665ed..fd0d5f531f35 100644 --- a/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java @@ -19,6 +19,7 @@ import com.intellij.configurationStore.StorageUtilKt; import com.intellij.conversion.ConversionResult; import com.intellij.conversion.ConversionService; import com.intellij.ide.AppLifecycleListener; +import com.intellij.ide.IdeEventQueue; import com.intellij.ide.impl.ProjectUtil; import com.intellij.ide.plugins.PluginManager; import com.intellij.ide.startup.StartupManagerEx; @@ -383,6 +384,9 @@ public class ProjectManagerImpl extends ProjectManagerEx implements Disposable { return true; } + // process all pending events that can interrupt focus flow + IdeEventQueue.getInstance().flushQueue(); + boolean ok = myProgressManager.runProcessWithProgressSynchronously(process, ProjectBundle.message("project.load.progress"), canCancelProjectLoading(), project); if (!ok) { closeProject(project, false, false, true);