# editor: Change \`drag_and_drop_selection\` cursor on delay elapsed \+ Add \`drag_and_drop_selection\` delay setting \(\#33928\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/1569b662ff8ede1d126b27d44966ddbf0e207cbf)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: 1569b662ff8ede1d126b27d44966ddbf0e207cbf

Requested commit: 1569b662ff8ede1d126b27d44966ddbf0e207cbf

Commit: 1569b662ff8ede1d126b27d44966ddbf0e207cbf

Tree: 65cf7d40ed84972afd405f19a9853ea9b9b3fb99

Author: Daniel Sauble

Committer: GitHub

## Message

````
editor: Change `drag_and_drop_selection` cursor on delay elapsed + Add `drag_and_drop_selection` delay setting (#33928)

When [`drag_and_drop_selection` is
true](https://zed.dev/docs/configuring-zed#drag-and-drop-selection),
users can make a selection in the buffer and then drag and drop it to a
new location. However, the editor forces users to wait 300ms after mouse
down before dragging. If users try to drag before this delay has
elapsed, they will create a new text selection instead, which can create
the impression that drag and drop does not work.

I made two changes to improve the UX of this feature:

* If users do not want a delay before drag and drop is enabled, they can
set the `drag_and_drop_selection.delay_ms` setting to 0.
* If the user has done a mouse down on a text selection, the cursor
changes to a copy affordance as soon as the configured delay has
elapsed, rather than waiting for them to start dragging. This way they
don't need to guess at when the delay has elapsed.

The default settings for this feature are now:

```
"drag_and_drop_selection": {
  "enabled": true,
  "delay_ms": 300
}
```

Closes #33915 

Before:


https://github.com/user-attachments/assets/7b2f986f-9c67-4b2b-a10e-757c3e9c934b

After:


https://github.com/user-attachments/assets/726d0dbf-e58b-41ad-93d2-1a758640b422

Release Notes:

- Migrate `drag_and_drop_selection` setting to
`drag_and_drop_selection.enabled`.
- Add `drag_and_drop_selection.delay_ms` setting to configure the delay
that must elapse before drag and drop is allowed.
- Show a ready to drag cursor affordance as soon as the delay has
elapsed

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
````

## Parents

- [4ed206b37ce2b1713aa20361dfc74bda4a59b11c](https://git.cafe/gitcafe/zed/commit/4ed206b37ce2b1713aa20361dfc74bda4a59b11c?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/1569b662ff8ede1d126b27d44966ddbf0e207cbf?format=markdown)
