Allow dropping images and files to paste into the standalone app
- Langage dominant
- TypeScript
- Étoiles
- 5
- Forks
- 0
- Merge moyen
- 18 h 32 min
- PR mergées (30 j)
- 216
Description
## 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.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par vérifier l’état de l’issue Tauri en amont tauri-apps/tauri#14373 et examiner les stubs existants dans standalone/src-tauri/tauri.conf.json, standalone/src-tauri/src/lib.rs et standalone/src/tauri-adapter.ts. Suivez le câblage de onFilesDropped à travers lib/src/lib/platform/types.ts et lib/src/components/wall/use-session-persistence.ts ; le travail est terminé lorsque les dépôts natifs de fichiers/images dans standalone collent les chemins sans casser le réordonnancement des panneaux HTML5.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- rust, tauri, typescript
- Domaine
- desktop
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 35/100