From 49662839842660e769f4b500ec64b7a33f057fa0 Mon Sep 17 00:00:00 2001 From: Mikhail Pyltsin Date: Thu, 11 Sep 2025 16:13:46 +0200 Subject: [PATCH] [java] IDEA-378944 Navigation to implicit classes from project view requires extra clicks (cherry picked from commit 19da49da5217fa5644b437ca295be751531df864) IJ-CR-175396 GitOrigin-RevId: f38a624274bc54d74fa10e27b6ae5d43f78e22cc --- .../impl/ClassesTreeStructureProvider.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/java/java-impl/src/com/intellij/ide/projectView/impl/ClassesTreeStructureProvider.java b/java/java-impl/src/com/intellij/ide/projectView/impl/ClassesTreeStructureProvider.java index c5886f003589..82e693011e83 100644 --- a/java/java-impl/src/com/intellij/ide/projectView/impl/ClassesTreeStructureProvider.java +++ b/java/java-impl/src/com/intellij/ide/projectView/impl/ClassesTreeStructureProvider.java @@ -74,8 +74,10 @@ public final class ClassesTreeStructureProvider implements SelectableTreeStructu : Collections.emptyList(); if (classes.length == 1 && isClassForTreeNode(file, classes[0])) { result.add(new ClassTreeNode(myProject, classes[0], settings1, nestedFileNodes)); - } else { - result.add(new PsiClassOwnerTreeNode(classOwner, settings1, nestedFileNodes)); + } + else { + boolean isImplicitClass = classes.length == 1 && classes[0] instanceof PsiImplicitClass; + result.add(new PsiClassOwnerTreeNode(classOwner, settings1, nestedFileNodes, isImplicitClass)); } continue; } @@ -148,15 +150,23 @@ public final class ClassesTreeStructureProvider implements SelectableTreeStructu private static class PsiClassOwnerTreeNode extends PsiFileNode implements FileNodeWithNestedFileNodes { private final @NotNull Collection> myNestedFileNodes; + private final boolean myIsImplicitClass; PsiClassOwnerTreeNode(@NotNull PsiClassOwner classOwner, ViewSettings settings, - @NotNull Collection> nestedFileNodes) { + @NotNull Collection> nestedFileNodes, + boolean isImplicitClass) { super(classOwner.getProject(), classOwner, settings); - + myIsImplicitClass = isImplicitClass; myNestedFileNodes = nestedFileNodes; } + @Override + public boolean expandOnDoubleClick() { + if (myIsImplicitClass) return false; + return super.expandOnDoubleClick(); + } + @Override public @NotNull Collection> getNestedFileNodes() { return myNestedFileNodes;