diffplug / diffplug/dormouse

Allow dropping images and files to paste into the standalone app

Đang mở
#38 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
blocked enhancement
Ngôn ngữ chính
TypeScript
Star
5
Fork
0
Merge trung bình
18 giờ 32 phút
Pull request đã merge (30 ngày)
216

Mô tả

## 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.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Bắt đầu bằng cách kiểm tra trạng thái issue Tauri upstream tauri-apps/tauri#14373 và xem xét các stub hiện có trong standalone/src-tauri/tauri.conf.json, standalone/src-tauri/src/lib.rs và standalone/src/tauri-adapter.ts. Truy vết plumbing của onFilesDropped qua lib/src/lib/platform/types.ts và lib/src/components/wall/use-session-persistence.ts; được coi là hoàn tất khi thao tác thả tệp/hình ảnh native trong standalone dán các đường dẫn mà không làm hỏng việc sắp xếp lại pane HTML5.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
rust, tauri, typescript
Lĩnh vực
desktop
Loại issue
Tính năng
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.