Skip to content

Commit

Permalink
Fire handleDrop even when there's no parseable slice in the dataTra…
Browse files Browse the repository at this point in the history
…nsfer

FIX: Make sure `handleDrop`](##view.EditorProps.handleDrop) is called even
when there's nothing on the clipboard.

See https://discuss.prosemirror.net/t/prevent-browser-loading-a-drag-and-drop-file/2544
  • Loading branch information
marijnh committed Feb 20, 2020
1 parent dc1c0de commit d6effbb
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion src/input.js
Expand Up @@ -582,10 +582,13 @@ editHandlers.drop = (view, e) => {
let slice = dragging && dragging.slice ||
parseFromClipboard(view, e.dataTransfer.getData(brokenClipboardAPI ? "Text" : "text/plain"),
brokenClipboardAPI ? null : e.dataTransfer.getData("text/html"), false, $mouse)
if (view.someProp("handleDrop", f => f(view, e, slice || Slice.empty, dragging && dragging.move))) {
e.preventDefault()
return
}
if (!slice) return

e.preventDefault()
if (view.someProp("handleDrop", f => f(view, e, slice, dragging && dragging.move))) return
let insertPos = slice ? dropPoint(view.state.doc, $mouse.pos, slice) : $mouse.pos
if (insertPos == null) insertPos = $mouse.pos

Expand Down

0 comments on commit d6effbb

Please sign in to comment.