diff --git a/platform/non-modal-welcome-screen/frontend/BUILD.bazel b/platform/non-modal-welcome-screen/frontend/BUILD.bazel
index a79f124d7a01..020b939e478b 100644
--- a/platform/non-modal-welcome-screen/frontend/BUILD.bazel
+++ b/platform/non-modal-welcome-screen/frontend/BUILD.bazel
@@ -24,6 +24,7 @@ jvm_library(
"//platform/core-ui",
"//platform/project/shared:project",
"//fleet/rpc",
+ "//platform/platform-impl:ide-impl",
],
plugins = ["@lib//:compose-plugin"]
)
diff --git a/platform/non-modal-welcome-screen/frontend/intellij.platform.ide.nonModalWelcomeScreen.frontend.iml b/platform/non-modal-welcome-screen/frontend/intellij.platform.ide.nonModalWelcomeScreen.frontend.iml
index 29addfae31f8..dc02b89bd6a7 100644
--- a/platform/non-modal-welcome-screen/frontend/intellij.platform.ide.nonModalWelcomeScreen.frontend.iml
+++ b/platform/non-modal-welcome-screen/frontend/intellij.platform.ide.nonModalWelcomeScreen.frontend.iml
@@ -43,5 +43,6 @@
+
\ No newline at end of file
diff --git a/platform/non-modal-welcome-screen/frontend/src/WelcomeScreenLeftTabListener.kt b/platform/non-modal-welcome-screen/frontend/src/WelcomeScreenLeftTabListener.kt
index ccd0a82a17c9..edc34a08e3ac 100644
--- a/platform/non-modal-welcome-screen/frontend/src/WelcomeScreenLeftTabListener.kt
+++ b/platform/non-modal-welcome-screen/frontend/src/WelcomeScreenLeftTabListener.kt
@@ -5,8 +5,11 @@ import com.intellij.ide.projectView.impl.ProjectViewImpl
import com.intellij.ide.projectView.impl.ProjectViewPane
import com.intellij.openapi.fileEditor.FileEditorManagerEvent
import com.intellij.openapi.fileEditor.FileEditorManagerListener
+import com.intellij.openapi.project.Project
import com.intellij.openapi.util.registry.Registry
-import com.intellij.platform.ide.nonModalWelcomeScreen.leftPanel.WelcomeScreenLeftPanel.Companion.ID
+import com.intellij.openapi.wm.ToolWindowId
+import com.intellij.openapi.wm.ToolWindowManager
+import com.intellij.platform.ide.nonModalWelcomeScreen.leftPanel.WelcomeScreenLeftPanel
import com.intellij.platform.ide.nonModalWelcomeScreen.rightTab.WelcomeScreenRightTabVirtualFile
internal class WelcomeScreenLeftTabListener: FileEditorManagerListener {
@@ -18,10 +21,20 @@ internal class WelcomeScreenLeftTabListener: FileEditorManagerListener {
val isChangedFromWelcome = event.oldFile?.fileType is WelcomeScreenRightTabVirtualFile.WelcomeScreenFileType
val project = event.manager.project
if (isChangedToWelcome) {
- ProjectViewImpl.getInstance(project).changeView(ID)
+ safeChangeView(project, WelcomeScreenLeftPanel.ID)
}
else if (isChangedFromWelcome) {
- ProjectViewImpl.getInstance(project).changeView(ProjectViewPane.ID)
+ safeChangeView(project, ProjectViewPane.ID)
}
}
+
+ private fun safeChangeView(project: Project, viewId: String) {
+ val canChangeView = ToolWindowManager.getInstance(project).getToolWindow(ToolWindowId.PROJECT_VIEW)?.contentManagerIfCreated != null
+ if (!canChangeView) {
+ // `ProjectViewImpl.changeView` expects `contentManager` to be not null.
+ return
+ }
+
+ ProjectViewImpl.getInstance(project).changeView(viewId)
+ }
}