From 3e84270a99ea13d50cc0a51fe3faf7bbcef7b059 Mon Sep 17 00:00:00 2001 From: anna Date: Fri, 8 Oct 2010 19:58:48 +0400 Subject: [PATCH] dnd: do not accept redundant --- .../ide/projectView/impl/ProjectViewDropTarget.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewDropTarget.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewDropTarget.java index df1878fba764..84bdf9819f8d 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewDropTarget.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewDropTarget.java @@ -81,6 +81,16 @@ class ProjectViewDropTarget implements DnDNativeTarget { else if (sourceNodes != null && !dropHandler.isValidSource(sourceNodes, targetNode)) { return false; } + if (sourceNodes != null) { + boolean redundant = true; + for (TreeNode sourceNode : sourceNodes) { + if (!dropHandler.isDropRedundant(sourceNode, targetNode)) { + redundant = false; + break; + } + } + if (redundant) return false; + } final Rectangle pathBounds = myTree.getPathBounds(myTree.getPathForLocation(point.x, point.y)); aEvent.setHighlighting(new RelativeRectangle(myTree, pathBounds), DnDEvent.DropTargetHighlightingType.RECTANGLE ); aEvent.setDropPossible(true, null);