Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dropcursor won't remove the cursor if default drop event is prevented from custom handler #1385

Open
eric-burel opened this issue Jun 6, 2023 · 3 comments

Comments

@eric-burel
Copy link

eric-burel commented Jun 6, 2023

Hi,

I couldn't build a repro because the Glitch doesn't allow to require prosemirror-dropcursor, but the bug is simple:

  1. Install dropcursor
  2. Write a custom drop handler that calls event.preventDefault(). I do not return anything from this handler.
  3. Drop something: the cursor stays up for 5 secondes instead of 20ms because "dropcursor" never catches the drop event

It seems to me that dropcursor should have a kind of "priority" over the default drop handlers. Removing preventDefault() from my custom handler is possible but perhaps not recommended are you are supposed to call it in drop event handlers when you accept the drop, unless I misunderstand something specific to prosemirror.

Returning "true" at the end seems to have no effect.

@marijnh
Copy link
Member

marijnh commented Jun 6, 2023

Does putting your custom plugin after the dropcursor plugin in the extension array help?

@eric-burel
Copy link
Author

eric-burel commented Jun 6, 2023

It's a custom event handler, defined using  handleDOMEvents, so not a plugin I would have tried that otherwise.

Edit: perhaps there is a way to have a plugin to add events to "handleDOMEvents", instead of listeneing to direct events? So we can control the order in which they run more cleanly?

In the meantime I'll probably copy dropcursor in my app and handle the rendering more directly

@marijnh
Copy link
Member

marijnh commented Jun 6, 2023

You can create a plugin with props: {handleDOMEvents: {...}}

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

No branches or pull requests

2 participants