From bea998ee6256079e087d35aca5e4081ceadc1b12 Mon Sep 17 00:00:00 2001 From: Alexander Gratzl Date: Fri, 10 Jan 2025 11:53:00 +0100 Subject: [PATCH] #472 check if selection includes a non editable inline element by iterating parent nodes instead of only checking the startContainer (which does not work) --- source/range/Boundaries.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/source/range/Boundaries.ts b/source/range/Boundaries.ts index 4e289ad7..8fb38208 100644 --- a/source/range/Boundaries.ts +++ b/source/range/Boundaries.ts @@ -158,8 +158,13 @@ const moveRangeBoundariesUpTree = ( range.setStart(startContainer, startOffset); - if (startContainer instanceof HTMLElement && !startContainer.isContentEditable) { - range.setStart(endContainer, endOffset); + let node = startContainer; + while (isInline(node)) { + if (node instanceof HTMLElement && !node.isContentEditable) { + range.setStart(endContainer, endOffset); + break; + } + node = node.parentNode!; } range.setEnd(endContainer, endOffset);