From 48f81ae386537553f45590e3e89f67b5e7b00e08 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sat, 9 Jul 2022 22:27:34 +0800 Subject: [PATCH] :art: enter https://github.com/siyuan-note/siyuan/issues/5384 --- app/src/protyle/wysiwyg/enter.ts | 11 +++++++++-- app/src/protyle/wysiwyg/keydown.ts | 3 ++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/protyle/wysiwyg/enter.ts b/app/src/protyle/wysiwyg/enter.ts index bbb3266cf..209a20354 100644 --- a/app/src/protyle/wysiwyg/enter.ts +++ b/app/src/protyle/wysiwyg/enter.ts @@ -1,5 +1,5 @@ import {genEmptyElement, insertEmptyBlock} from "../../block/util"; -import {getSelectionOffset, focusByWbr} from "../util/selection"; +import {getSelectionOffset, focusByWbr, setLastNodeRange} from "../util/selection"; import { getContenteditableElement, getTopEmptyElement, @@ -185,7 +185,14 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) = }; export const enter = (blockElement: HTMLElement, range: Range, protyle: IProtyle) => { - if (isNotEditBlock(blockElement)) { + const disableElement = isNotEditBlock(blockElement) + if ((!disableElement || blockElement.classList.contains("hr")) && blockElement.classList.contains("protyle-wysiwyg--select")) { + setLastNodeRange(getContenteditableElement(blockElement), range, false); + range.collapse(false); + blockElement.classList.remove("protyle-wysiwyg--select"); + return; + } + if (disableElement) { if (blockElement.classList.contains("render-node")) { protyle.toolbar.showRender(protyle, blockElement); } else if (blockElement.classList.contains("hr")) { diff --git a/app/src/protyle/wysiwyg/keydown.ts b/app/src/protyle/wysiwyg/keydown.ts index 16c3434fe..c9bf1837f 100644 --- a/app/src/protyle/wysiwyg/keydown.ts +++ b/app/src/protyle/wysiwyg/keydown.ts @@ -208,7 +208,8 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => { if (!isCtrl(event) && event.key !== "Backspace" && event.key !== "Escape" && event.key !== "Delete" && !event.shiftKey && !event.altKey && !matchHotKey(window.siyuan.config.keymap.editor.list.indent.custom, event) && !matchHotKey(window.siyuan.config.keymap.editor.list.outdent.custom, event) && - !matchHotKey(window.siyuan.config.keymap.editor.general.newContentFile.custom, event)) { + !matchHotKey(window.siyuan.config.keymap.editor.general.newContentFile.custom, event) && + event.key !== "Enter") { hideElements(["select"], protyle); }