Skip to content

Standardize drag & drop behavior between Project Explorer and Finder (APP-4360)#9874

Draft
warp-dev-github-integration[bot] wants to merge 1 commit intomasterfrom
oz-agent/APP-4360/standardize-drag-drop
Draft

Standardize drag & drop behavior between Project Explorer and Finder (APP-4360)#9874
warp-dev-github-integration[bot] wants to merge 1 commit intomasterfrom
oz-agent/APP-4360/standardize-drag-drop

Conversation

@warp-dev-github-integration
Copy link
Copy Markdown

Description

Standardizes drag & drop behavior so that files dropped from the Project Explorer are handled identically to files dropped from Finder (the OS-level drag source).

Before:

  • Project Explorer → Input: Inserted a relative path (relative to repo root) without shell escaping or image detection
  • Project Explorer → Terminal (long-running command): Inserted the absolute path without shell escaping or image detection
  • Finder → Input/Terminal: Properly detected images, applied shell escaping, handled WSL path conversion, and supported SSH file upload

After:
Both Project Explorer and Finder drops now go through the same code paths:

  • ItemDroppedOnInput routes through the editor's DragAndDropFiles action, which handles image detection/attachment, shell escaping, WSL path transformation, and uses absolute paths
  • ItemDroppedOnTerminal routes through TerminalView::drag_and_drop_files, which handles image detection, shell escaping, WSL path conversion, MSYS2 handling, and SSH file upload

Linked Issue

Resolves APP-4360

  • The linked issue is labeled ready-to-spec or ready-to-implement.
  • Where appropriate, screenshots or a short video of the implementation are included below (especially for user-visible or UI changes).

Testing

  • Verified compilation with cargo check -p warp
  • Verified formatting with cargo fmt
  • The changes route through existing, well-tested code paths (EditorView::drag_and_drop_files and TerminalView::drag_and_drop_files) so no new test cases were needed

Agent Mode

  • Warp Agent Mode - This PR was created via Warp's AI Agent Mode

Conversation: https://staging.warp.dev/conversation/05a569bf-0326-4e06-bef5-45d5e69eb591
Run: https://oz.staging.warp.dev/runs/019de638-7042-7076-a220-3c58e8b1bd2d
This PR was generated with Oz.

Fixes the inconsistency where files dragged from the Project Explorer
were handled differently than files dragged from Finder:

- Project Explorer → Input: was inserting relative path without shell
  escaping or image detection. Now routes through the editor's
  DragAndDropFiles action (same as Finder), so image files are
  detected and attached as context, non-image paths are shell-escaped
  and transformed for WSL, and absolute paths are used consistently.

- Project Explorer → Terminal (long-running command): was inserting
  the absolute path directly without shell escaping or image detection.
  Now routes through TerminalView::drag_and_drop_files (same as Finder),
  so shell escaping, WSL path conversion, and SSH file upload all apply.

Resolves APP-4360

Co-Authored-By: Oz <oz-agent@warp.dev>
@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented May 2, 2026

Thank you for your pull request and welcome to our community. We could not parse the GitHub identity of the following contributors: {"message":"Resource not accessible by integration","documentation_url":"https://docs.github.com/rest/users/users#get-the-authenticated-user&quot;,&quot;status&quot;:&quot;403&quot;}.
This is most likely caused by a git client misconfiguration; please make sure to:

  1. check if your git client is configured with an email to sign commits git config --list | grep email
  2. If not, set it up using git config --global user.email email@example.com
  3. Make sure that the git commit email is configured in your GitHub account settings, see https://github.com/settings/emails

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants