diff --git a/app/src/protyle/wysiwyg/index.ts b/app/src/protyle/wysiwyg/index.ts index d7a1c4986..f91efd3b8 100644 --- a/app/src/protyle/wysiwyg/index.ts +++ b/app/src/protyle/wysiwyg/index.ts @@ -1751,11 +1751,10 @@ export class WYSIWYG { } if (selectElement.length > 0) { range.collapse(true); - if (range.commonAncestorContainer.nodeType === 1 && - range.startContainer.childNodes[range.startOffset] && - range.startContainer.childNodes[range.startOffset].nodeType === 1 && - (range.commonAncestorContainer as HTMLElement).classList.contains("protyle-wysiwyg")) { - focusBlock(range.startContainer.childNodes[range.startOffset] as Element); + // https://github.com/siyuan-note/siyuan/issues/17092 & https://github.com/siyuan-note/siyuan/issues/15296 + const endElement = hasClosestBlock(mouseUpEvent.target as HTMLElement); + if (endElement && document.activeElement.classList.contains("protyle-wysiwyg")) { + focusBlock(endElement); } return; }