From ac16f6050e6dba8febb1f67fef5e652c3238a53a Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Wed, 3 Jun 2020 03:35:11 +0300 Subject: [PATCH] Do not collapse a single root node in Project View (IDEA-230663) GitOrigin-RevId: 550e2f5efc637764401ec0cf43023f2dca2d6457 --- .../com/intellij/ide/projectView/impl/ProjectViewImpl.java | 7 ++++++- .../src/com/intellij/ide/DefaultTreeExpander.kt | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java index 49403892ea80..9c3684709f42 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java @@ -959,7 +959,12 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo AnAction collapseAllAction = CommonActionsManager.getInstance().createCollapseAllAction(new DefaultTreeExpander(() -> { AbstractProjectViewPane pane = getCurrentProjectViewPane(); return pane == null ? null : pane.myTree; - }), getComponent()); + }) { + @Override + protected void collapseAll(@NotNull JTree tree, boolean strict, int keepSelectionLevel) { + super.collapseAll(tree, false, keepSelectionLevel); + } + }, getComponent()); collapseAllAction.getTemplatePresentation().setIcon(AllIcons.Actions.Collapseall); titleActions.add(collapseAllAction); } diff --git a/platform/platform-api/src/com/intellij/ide/DefaultTreeExpander.kt b/platform/platform-api/src/com/intellij/ide/DefaultTreeExpander.kt index d0c9904cd9d9..11e7da6924c2 100644 --- a/platform/platform-api/src/com/intellij/ide/DefaultTreeExpander.kt +++ b/platform/platform-api/src/com/intellij/ide/DefaultTreeExpander.kt @@ -34,7 +34,11 @@ open class DefaultTreeExpander(private val supplier: () -> JTree?) : TreeExpande } protected open fun collapseAll(tree: JTree, keepSelectionLevel: Int) { - TreeUtil.collapseAll(tree, keepSelectionLevel) + collapseAll(tree, true, keepSelectionLevel) + } + + protected open fun collapseAll(tree: JTree, strict: Boolean, keepSelectionLevel: Int) { + TreeUtil.collapseAll(tree, strict, keepSelectionLevel) showSelectionCentered(tree) }