diff --git a/app/src/protyle/wysiwyg/keydown.ts b/app/src/protyle/wysiwyg/keydown.ts index 1904a805f..daef3a6cd 100644 --- a/app/src/protyle/wysiwyg/keydown.ts +++ b/app/src/protyle/wysiwyg/keydown.ts @@ -358,7 +358,7 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => { } } else if (!selectElements[0].parentElement.classList.contains("protyle-wysiwyg")) { hideElements(["select"], protyle); - selectElements[0].parentElement.classList.add("protyle-wysiwyg--select"); + (hasClosestBlock(selectElements[0].parentElement) as HTMLElement)?.classList.add("protyle-wysiwyg--select"); } } }); @@ -384,7 +384,7 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => { } } else if (!selectLastElement.parentElement.classList.contains("protyle-wysiwyg")) { hideElements(["select"], protyle); - selectLastElement.parentElement.classList.add("protyle-wysiwyg--select"); + (hasClosestBlock(selectLastElement.parentElement) as HTMLElement)?.classList.add("protyle-wysiwyg--select"); } } }); @@ -409,7 +409,7 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => { } } else if (!startEndElement.endElement.parentElement.classList.contains("protyle-wysiwyg")) { hideElements(["select"], protyle); - startEndElement.endElement.parentElement.classList.add("protyle-wysiwyg--select"); + (hasClosestBlock(startEndElement.endElement.parentElement) as HTMLElement)?.classList.add("protyle-wysiwyg--select"); } } else { startEndElement.endElement.classList.remove("protyle-wysiwyg--select"); @@ -443,7 +443,7 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => { if (nextElement.getBoundingClientRect().width === 0) { // https://github.com/siyuan-note/siyuan/issues/11194 hideElements(["select"], protyle); - startEndElement.endElement.parentElement.classList.add("protyle-wysiwyg--select"); + (hasClosestBlock(startEndElement.endElement.parentElement) as HTMLElement)?.classList.add("protyle-wysiwyg--select"); } else { nextElement.classList.add("protyle-wysiwyg--select"); nextElement.setAttribute("select-end", "true"); @@ -456,7 +456,7 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => { } } else if (!startEndElement.endElement.parentElement.classList.contains("protyle-wysiwyg")) { hideElements(["select"], protyle); - startEndElement.endElement.parentElement.classList.add("protyle-wysiwyg--select"); + (hasClosestBlock(startEndElement.endElement.parentElement) as HTMLElement)?.classList.add("protyle-wysiwyg--select"); } } else { startEndElement.endElement.classList.remove("protyle-wysiwyg--select"); @@ -635,11 +635,14 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => { if (event.key === "ArrowDown" && nodeEditableElement?.innerText.trimRight().substr(position.start).indexOf("\n") === -1 && ( (tdElement && !tdElement.parentElement.nextElementSibling && nodeElement.getAttribute("data-type") === "NodeTable" && !getNextBlock(nodeElement)) || (nodeElement.getAttribute("data-type") === "NodeCodeBlock" && !getNextBlock(nodeElement)) || - (nodeElement.parentElement.getAttribute("data-type") === "NodeBlockquote" && nodeElement.nextElementSibling.classList.contains("protyle-attr") && !getNextBlock(nodeElement.parentElement)) + (nodeElement.parentElement.getAttribute("data-type") === "NodeBlockquote" && nodeElement.nextElementSibling.classList.contains("protyle-attr") && !getNextBlock(nodeElement.parentElement)) || + (nodeElement.parentElement.classList.contains("callout-content") && !nodeElement.nextElementSibling && !getNextBlock(nodeElement.parentElement.parentElement)) )) { // 跳出代码块和bq if (nodeElement.parentElement.getAttribute("data-type") === "NodeBlockquote") { insertEmptyBlock(protyle, "afterend", nodeElement.parentElement.getAttribute("data-node-id")); + } else if (nodeElement.parentElement.classList.contains("callout-content")) { + insertEmptyBlock(protyle, "afterend", nodeElement.parentElement.parentElement.getAttribute("data-node-id")); } else { insertEmptyBlock(protyle, "afterend", nodeElement.getAttribute("data-node-id")); }