diffplug / diffplug/dormouse

Allow dropping images and files to paste into the standalone app

Aperta
#38 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
blocked enhancement
Lingua principale
TypeScript
Stelle
5
Fork
0
Merge medio
14h 13m
PR unite (30g)
199

Descrizione

## Background

Dragging and dropping on a terminal pane has two use cases:

1. Drop a file or image to paste its path into the terminal.
2. Drag a pane tab to rearrange the pane layout.

In the VS Code extension only (2) works — file/image drop into a webview is blocked by VS Code itself, which is a platform limitation we can't change.

In the standalone Tauri app we previously had only (1): file/image drop pasted paths, but pane drag did not work. This was because Tauri 2's `dragDropEnabled: true` (the default) captures OS drag-drop natively, and on Windows that blocks all HTML5 drag events — including internal Dockview pane reorder. See tauri-apps/tauri#8581 and tauri-apps/tauri#14373.

We've now set `dragDropEnabled: false`, which restores pane drag (case 2). The cost is that case (1) is currently broken in standalone too: Chromium's webview doesn't expose `File.path`, so a vanilla HTML5 `drop` can't recover the path string without OS-level cooperation.

## What we want

Re-enable file/image drop-to-paste in the standalone without re-breaking pane drag.

## Blocker

Depends on upstream Tauri offering a way to receive file paths from native OS drops while still letting HTML5 drag events flow to the webview. Tracked upstream at tauri-apps/tauri#14373. Once that lands (or a usable plugin/escape hatch appears) we can flip `dragDropEnabled` back on (or adopt the new API) and re-activate the stubs.

## Stubs left in the codebase

Wiring is intentionally left in place so re-enabling is a small change:

- `standalone/src-tauri/tauri.conf.json` — `dragDropEnabled: false` is the kill switch.
- `standalone/src-tauri/src/lib.rs` — the `WindowEvent::DragDrop` handler that emits `mouseterm://files-dropped`.
- `standalone/src/tauri-adapter.ts` — the `mouseterm://files-dropped` listener and `onFilesDropped` plumbing.
- `lib/src/lib/platform/types.ts` — the optional `onFilesDropped` interface method.
- `lib/src/components/wall/use-session-persistence.ts` — the `platform.onFilesDropped?.(…)` subscription that calls `pasteFilePaths`.

## Note on VS Code

Doesn't apply to the VS Code extension — file drop into VS Code webviews is outside our control.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.