Allow dropping images and files to paste into the standalone app
- Lenguaje dominante
- TypeScript
- Estrellas
- 5
- Forks
- 0
- Merge medio
- 14 h 13 min
- PR fusionados (30 d)
- 199
Descripción
## 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.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Empieza comprobando el estado del issue upstream de Tauri tauri-apps/tauri#14373 y revisando los stubs existentes en standalone/src-tauri/tauri.conf.json, standalone/src-tauri/src/lib.rs y standalone/src/tauri-adapter.ts. Sigue la conexión de onFilesDropped a través de lib/src/lib/platform/types.ts y lib/src/components/wall/use-session-persistence.ts; se considera terminado cuando las acciones nativas de soltar archivos/imágenes en standalone peguen rutas sin romper la reordenación de paneles de HTML5.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- rust, tauri, typescript
- Área
- desktop
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Bien especificado
- Aptitud para principiantes
- 35/100