diffplug / diffplug/dormouse

Allow dropping images and files to paste into the standalone app

Abierto
#38 0 comentarios 0 reacciones 0 asignados Ver en GitHub
blocked enhancement
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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.