mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
copy to the same location should be possible (IDEA-62498) [spleaner]
This commit is contained in:
+10
-3
@@ -342,8 +342,11 @@ class ProjectViewDropTarget implements DnDNativeTarget {
|
||||
protected boolean canDrop(@NotNull final TreeNode[] sourceNodes, @Nullable final TreeNode targetNode) {
|
||||
final PsiElement[] sourceElements = getPsiElements(sourceNodes);
|
||||
final PsiElement targetElement = getPsiElement(targetNode);
|
||||
return (targetElement instanceof PsiDirectoryContainer || targetElement instanceof PsiDirectory) &&
|
||||
CopyHandler.canCopy(sourceElements);
|
||||
final PsiFile containingFile = targetElement.getContainingFile();
|
||||
final boolean isTargetAcceptable = targetElement instanceof PsiDirectoryContainer ||
|
||||
targetElement instanceof PsiDirectory ||
|
||||
(containingFile != null && containingFile.getContainingDirectory() != null);
|
||||
return isTargetAcceptable && CopyHandler.canCopy(sourceElements);
|
||||
}
|
||||
|
||||
public void doDrop(@NotNull final TreeNode[] sourceNodes, @NotNull final TreeNode targetNode) {
|
||||
@@ -358,8 +361,12 @@ class ProjectViewDropTarget implements DnDNativeTarget {
|
||||
final PsiDirectoryContainer directoryContainer = (PsiDirectoryContainer)targetElement;
|
||||
final PsiDirectory[] psiDirectories = directoryContainer.getDirectories();
|
||||
psiDirectory = psiDirectories.length != 0 ? psiDirectories[0] : null;
|
||||
} else {
|
||||
} else if (targetElement instanceof PsiDirectory) {
|
||||
psiDirectory = (PsiDirectory)targetElement;
|
||||
} else {
|
||||
final PsiFile containingFile = targetElement.getContainingFile();
|
||||
LOG.assertTrue(containingFile != null);
|
||||
psiDirectory = containingFile.getContainingDirectory();
|
||||
}
|
||||
CopyHandler.doCopy(sourceElements, psiDirectory);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user