diff --git a/platform/lang-impl/src/com/intellij/ide/CopyPasteDelegator.java b/platform/lang-impl/src/com/intellij/ide/CopyPasteDelegator.java index 4355819230ca..124275aba939 100644 --- a/platform/lang-impl/src/com/intellij/ide/CopyPasteDelegator.java +++ b/platform/lang-impl/src/com/intellij/ide/CopyPasteDelegator.java @@ -25,10 +25,7 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Key; -import com.intellij.psi.PsiDirectory; -import com.intellij.psi.PsiDirectoryContainer; -import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiManager; +import com.intellij.psi.*; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.refactoring.copy.CopyHandler; import com.intellij.refactoring.move.MoveCallback; @@ -164,6 +161,12 @@ public abstract class CopyPasteDelegator implements CopyPasteSupport { targetDirectory.putCopyableUserData(SHOW_CHOOSER_KEY, directories.length > 1); } } + if (targetDirectory == null && target != null) { + final PsiFile containingFile = target.getContainingFile(); + if (containingFile != null) { + targetDirectory = containingFile.getContainingDirectory(); + } + } if (CopyHandler.canCopy(elements)) { CopyHandler.doCopy(elements, targetDirectory); }