diff --git a/packages/core/src/helpers/posToDOMRect.ts b/packages/core/src/helpers/posToDOMRect.ts index 46f791f12d..a4c8fd59e5 100644 --- a/packages/core/src/helpers/posToDOMRect.ts +++ b/packages/core/src/helpers/posToDOMRect.ts @@ -1,7 +1,16 @@ +import isNodeSelection from './isNodeSelection' import { EditorView } from 'prosemirror-view' import coordsAtPos from './coordsAtPos' export default function posToDOMRect(view: EditorView, from: number, to: number): DOMRect { + if (isNodeSelection(view.state.selection)) { + const node = view.nodeDOM(from) as HTMLElement + + if (node && node.getBoundingClientRect) { + return node.getBoundingClientRect() + } + } + const start = coordsAtPos(view, from) const end = coordsAtPos(view, to, true) const top = Math.min(start.top, end.top)