src/vs/workbench/contrib/terminal/browser/terminalInstance.ts/TerminalInstanceDragAndDropController/onDrop
class TerminalInstanceDragAndDropController:	async onDrop(e: DragEvent) {
		this._clearDropOverlay();

		if (!e.dataTransfer) {
			return;
		}

		const terminalResources = e.dataTransfer.getData(DataTransfers.TERMINALS);
		if (terminalResources) {
			const uri = URI.from({
				scheme: Schemas.vscodeTerminal,
				path: URI.parse(JSON.parse(terminalResources)[0]).path
			});
			const side = this._getDropSide(e);
			this._onDropTerminal.fire({ uri, side });
			return;
		}

		// Check if files were dragged from the tree explorer
		let path: string | undefined;
		const resources = e.dataTransfer.getData(DataTransfers.RESOURCES);
		if (resources) {
			const uri = URI.parse(JSON.parse(resources)[0]);
			if (uri.scheme === Schemas.vscodeTerminal) {
				const side = this._getDropSide(e);
				this._onDropTerminal.fire({ uri, side });
				return;
			} else {
				path = uri.fsPath;
			}
		} else if (e.dataTransfer.files.length > 0 && e.dataTransfer.files[0].path /* Electron only */) {
			// Check if the file was dragged from the filesystem
			path = URI.file(e.dataTransfer.files[0].path).fsPath;
		}

		if (!path) {
			return;
		}

		this._onDropFile.fire(path);
	}