From 24c55ab52849b5923cccf2ecab1fffae1fbe383b Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Fri, 25 Aug 2017 20:44:41 +0300 Subject: [PATCH] if started from non-leaf then clear selection from sub-nodes while deselecting --- .../com/intellij/ui/tree/TreeSmartSelectProvider.java | 9 +++++++++ 1 file changed, 9 insertions(+) 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) {