diff --git a/platform/platform-impl/src/com/intellij/ui/tree/TreeSmartSelectProvider.java b/platform/platform-impl/src/com/intellij/ui/tree/TreeSmartSelectProvider.java index 0e3abd8ec153..1f49e483d580 100644 --- a/platform/platform-impl/src/com/intellij/ui/tree/TreeSmartSelectProvider.java +++ b/platform/platform-impl/src/com/intellij/ui/tree/TreeSmartSelectProvider.java @@ -103,6 +103,15 @@ public class TreeSmartSelectProvider implements SmartSelectProvider { i++; } } + + //in case lead selection is not leaf + if (paths.length == tree.getSelectionCount()) { + for (TreePath path : paths) { + tree.removeSelectionPath(path); + } + tree.addSelectionPath(leadSelection); + tree.setLeadSelectionPath(leadSelection); + } } private static boolean hasCommonStart(TreePath path, TreePath leadSelection, int commonStartLength) {