diff --git a/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts b/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts index 78017d5ca5586cde33fe07cc40bb3357e94c6738..1105d96bf3f2c7f0e44664f9ed8a782925d36764 100644 --- a/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts +++ b/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts @@ -55,6 +55,7 @@ import { getPathLabel } from 'vs/base/common/labels'; import { extractResources } from 'vs/workbench/browser/editor'; import { relative } from 'path'; import { DataTransfers } from 'vs/base/browser/dnd'; +import { distinctParents } from 'vs/base/common/resources'; export class FileDataSource implements IDataSource { constructor( @@ -865,7 +866,7 @@ export class FileDragAndDrop extends SimpleFileResourceDragAndDrop { } private handleExplorerDrop(tree: ITree, data: IDragAndDropData, target: FileStat, originalEvent: DragMouseEvent): TPromise { - const sources: FileStat[] = data.getData(); + const sources: FileStat[] = distinctParents(data.getData(), s => s.resource); const isCopy = (originalEvent.ctrlKey && !isMacintosh) || (originalEvent.altKey && isMacintosh); let confirmPromise: TPromise;