From 9ba9a0154877a0e22ad71da8c0a8a66731bbcf9d Mon Sep 17 00:00:00 2001 From: "Vladislav.Soroka" Date: Mon, 23 Dec 2019 13:53:16 +0300 Subject: [PATCH] CPP-18543 Build tool window appears at incorrect position (on the left) on opening Gradle project GitOrigin-RevId: 343dc214fcb5345c079bfbeb604b388b88168226 --- .../intellij/build/BuildContentManagerImpl.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/build/BuildContentManagerImpl.java b/platform/lang-impl/src/com/intellij/build/BuildContentManagerImpl.java index 4ad8ed9e0fc4..6f2b32a25bcb 100644 --- a/platform/lang-impl/src/com/intellij/build/BuildContentManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/build/BuildContentManagerImpl.java @@ -12,7 +12,7 @@ import com.intellij.ide.startup.StartupManagerEx; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.DataProvider; import com.intellij.openapi.application.ModalityState; -import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.project.DumbAwareRunnable; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.Key; @@ -54,8 +54,6 @@ public final class BuildContentManagerImpl implements BuildContentManager { private final Project myProject; private final Map> liveContentsMap = ContainerUtil.newConcurrentMap(); - private static final Logger LOG = Logger.getInstance(BuildContentManagerImpl.class); - public BuildContentManagerImpl(@NotNull Project project) { myProject = project; } @@ -91,12 +89,17 @@ public final class BuildContentManagerImpl implements BuildContentManager { return toolWindow; } - private void invokeLaterIfNeeded(@NotNull Runnable runnable) { + private void invokeLaterIfNeeded(@NotNull DumbAwareRunnable runnable) { if (myProject.isDefault()) { return; } - LOG.assertTrue(StartupManagerEx.getInstanceEx(myProject).startupActivityPassed()); - GuiUtils.invokeLaterIfNeeded(runnable, ModalityState.defaultModalityState(), myProject.getDisposed()); + if (!StartupManagerEx.getInstanceEx(myProject).startupActivityPassed()) { + StartupManagerEx.getInstanceEx(myProject).registerPostStartupDumbAwareActivity( + () -> GuiUtils.invokeLaterIfNeeded(runnable, ModalityState.defaultModalityState(), myProject.getDisposed())); + } + else { + GuiUtils.invokeLaterIfNeeded(runnable, ModalityState.defaultModalityState(), myProject.getDisposed()); + } } @Override