V 2024-09-16 18:27:18 +08:00 committed by Daniel
parent 7514e4abcc
commit ed6efb89da
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -15,7 +15,8 @@ import {
hasClosestBlock,
hasClosestByAttribute,
hasClosestByMatchTag,
hasTopClosestByAttribute, isInEmbedBlock
hasTopClosestByAttribute,
isInEmbedBlock
} from "../util/hasClosest";
import {removeBlock, removeImage} from "./remove";
import {
@ -24,7 +25,8 @@ import {
getLastBlock,
getNextBlock,
getPreviousBlock,
getTopAloneElement, hasNextSibling,
getTopAloneElement,
hasNextSibling,
hasPreviousSibling,
isNotEditBlock,
} from "./getBlock";
@ -46,14 +48,7 @@ import {isLocalPath} from "../../util/pathName";
/// #if !MOBILE
import {openBy, openFileById} from "../../editor/util";
/// #endif
import {
alignImgCenter,
alignImgLeft,
commonHotkey,
downSelect,
getStartEndElement,
upSelect
} from "./commonHotkey";
import {alignImgCenter, alignImgLeft, commonHotkey, downSelect, getStartEndElement, upSelect} from "./commonHotkey";
import {fileAnnotationRefMenu, inlineMathMenu, linkMenu, refMenu, setFold, tagMenu} from "../../menus/protyle";
import {openAttr} from "../../menus/commonMenuItem";
import {Constants} from "../../constants";
@ -648,7 +643,7 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
) ||
(!firstEditElement && nodeElement.isSameNode(protyle.wysiwyg.element.firstElementChild))) {
// 不能用\n判断否则文字过长折行将错误 https://github.com/siyuan-note/siyuan/issues/6156
if (getSelectionPosition(nodeElement, range).top - protyle.wysiwyg.element.getBoundingClientRect().top < 40 || position.start === 0 || nodeElement.classList.contains("av")) {
if (getSelectionPosition(nodeElement, range).top - parseInt(getComputedStyle(nodeElement).paddingTop) - protyle.wysiwyg.element.getBoundingClientRect().top < 40 || nodeElement.classList.contains("av")) {
if (protyle.title && protyle.title.editElement &&
(protyle.wysiwyg.element.firstElementChild.getAttribute("data-eof") === "1" ||
protyle.contentElement.scrollTop === 0)) {
@ -670,7 +665,7 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
if (previousElement) {
const foldElement = hasClosestByAttribute(previousElement, "fold", "1") as HTMLElement;
// 代码块或以软换行结尾的块移动光标 ↑ 会跳过 https://github.com/siyuan-note/siyuan/issues/5498
if (getContenteditableElement(previousElement)?.textContent.endsWith("\n") && !foldElement) {
if (!foldElement) {
focusBlock(previousElement, undefined, false);
scrollCenter(protyle, previousElement);
event.stopPropagation();