diff --git a/packages/core/src/NodeView.ts b/packages/core/src/NodeView.ts index 020582f5362..16f9afc8949 100644 --- a/packages/core/src/NodeView.ts +++ b/packages/core/src/NodeView.ts @@ -113,11 +113,12 @@ export class NodeView< return false } + const isDropEvent = event.type === 'drop' const isInput = ['INPUT', 'BUTTON', 'SELECT', 'TEXTAREA'].includes(target.tagName) || target.isContentEditable // any input event within node views should be ignored by ProseMirror - if (isInput) { + if (isInput && !isDropEvent) { return true } @@ -129,7 +130,7 @@ export class NodeView< const isPasteEvent = event.type === 'paste' const isCutEvent = event.type === 'cut' const isClickEvent = event.type === 'mousedown' - const isDragEvent = event.type.startsWith('drag') || event.type === 'drop' + const isDragEvent = event.type.startsWith('drag') // ProseMirror tries to drag selectable nodes // even if `draggable` is set to `false` @@ -165,6 +166,7 @@ export class NodeView< // these events are handled by prosemirror if ( isDragging + || isDropEvent || isCopyEvent || isPasteEvent || isCutEvent