diff --git a/platform/non-modal-welcome-screen/src/com/intellij/platform/ide/nonModalWelcomeScreen/leftPanel/WelcomeScreenLeftPanel.kt b/platform/non-modal-welcome-screen/src/com/intellij/platform/ide/nonModalWelcomeScreen/leftPanel/WelcomeScreenLeftPanel.kt index 32111980b12d..1e751c5ccef0 100644 --- a/platform/non-modal-welcome-screen/src/com/intellij/platform/ide/nonModalWelcomeScreen/leftPanel/WelcomeScreenLeftPanel.kt +++ b/platform/non-modal-welcome-screen/src/com/intellij/platform/ide/nonModalWelcomeScreen/leftPanel/WelcomeScreenLeftPanel.kt @@ -136,7 +136,7 @@ class WelcomeScreenLeftPanel(private val project: Project) : ProjectViewPane(pro treeBackground = null ).apply { tree.emptyText.text = NonModalWelcomeScreenBundle.message("welcome.screen.no.recent.projects") - selectLastOpenedProject() + selectLastOpenedProjectOrTheFirstInTree() } private fun createProjectSearchField(recentProjectTree: RecentProjectFilteringTree): SearchTextField = diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/recentProjects/RecentProjectFilteringTree.kt b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/recentProjects/RecentProjectFilteringTree.kt index 7974ac830a3d..d6f1199de1fd 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/recentProjects/RecentProjectFilteringTree.kt +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/recentProjects/RecentProjectFilteringTree.kt @@ -192,9 +192,12 @@ class RecentProjectFilteringTree( } } - fun selectLastOpenedProject() { + /** + * @return true if the last opened project was selected + */ + fun selectLastOpenedProject(): Boolean { val recentProjectsManager = RecentProjectsManagerBase.getInstanceEx() - val projectPath = recentProjectsManager.getLastOpenedProject() ?: return + val projectPath = recentProjectsManager.getLastOpenedProject() ?: return false val node = TreeUtil.findNode(root, Condition { when (val item = TreeUtil.getUserObject(RecentProjectTreeItem::class.java, it)) { @@ -206,7 +209,23 @@ class RecentProjectFilteringTree( if (node != null) { TreeUtil.selectNode(tree, node) + return true } + return false + } + + @ApiStatus.Internal + fun selectLastOpenedProjectOrTheFirstInTree(): Boolean { + if (selectLastOpenedProject()) { + return true + } + + val firstChild = root.firstChild + if (firstChild != null) { + TreeUtil.selectNode(tree, firstChild) + return true + } + return false } private class ProjectActionMouseListener(