diff --git a/app/src/boot/globalEvent/keydown.ts b/app/src/boot/globalEvent/keydown.ts index 126b8c207..9f345230e 100644 --- a/app/src/boot/globalEvent/keydown.ts +++ b/app/src/boot/globalEvent/keydown.ts @@ -60,6 +60,7 @@ import {Search} from "../../search"; import {Custom} from "../../layout/dock/Custom"; import {Protyle} from "../../protyle"; import {transaction} from "../../protyle/wysiwyg/transaction"; +import {quickMakeCard} from "../../card/makeCard"; const switchDialogEvent = (app: App, event: MouseEvent) => { event.preventDefault(); @@ -253,6 +254,25 @@ const editKeydown = (app: App, event: KeyboardEvent) => { event.preventDefault(); return true; } + if (!isFileFocus && matchHotKey(window.siyuan.config.keymap.editor.general.quickMakeCard.custom, event)) { + if (protyle.title.editElement.contains(range.startContainer)) { + quickMakeCard(protyle, [protyle.title.element]); + } else { + const selectElement: Element[] = []; + protyle.wysiwyg.element.querySelectorAll(".protyle-wysiwyg--select").forEach(item => { + selectElement.push(item); + }); + if (selectElement.length === 0) { + const nodeElement = hasClosestBlock(range.startContainer); + if (nodeElement) { + selectElement.push(nodeElement); + } + } + quickMakeCard(protyle, selectElement); + } + event.preventDefault(); + return true; + } if (!isFileFocus && matchHotKey(window.siyuan.config.keymap.editor.general.spaceRepetition.custom, event)) { fetchPost("/api/riff/getTreeRiffDueCards", {rootID: protyle.block.rootID}, (response) => { openCardByData(app, response.data, "doc", protyle.block.rootID, protyle.title.editElement.textContent || "Untitled"); diff --git a/app/src/protyle/header/Title.ts b/app/src/protyle/header/Title.ts index f064fead4..2088b2ffa 100644 --- a/app/src/protyle/header/Title.ts +++ b/app/src/protyle/header/Title.ts @@ -144,11 +144,6 @@ export class Title { }); event.preventDefault(); event.stopPropagation(); - } else if (matchHotKey(window.siyuan.config.keymap.editor.general.quickMakeCard.custom, event)) { - quickMakeCard(protyle, [this.element]); - event.preventDefault(); - event.stopPropagation(); - return true; } else if (matchHotKey("⌘A", event)) { getEditorRange(this.editElement).selectNodeContents(this.editElement); event.preventDefault(); diff --git a/app/src/protyle/wysiwyg/keydown.ts b/app/src/protyle/wysiwyg/keydown.ts index 840915ad2..704264a92 100644 --- a/app/src/protyle/wysiwyg/keydown.ts +++ b/app/src/protyle/wysiwyg/keydown.ts @@ -1033,19 +1033,6 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => { return true; } - if (matchHotKey(window.siyuan.config.keymap.editor.general.quickMakeCard.custom, event)) { - const selectElement: Element[] = []; - protyle.wysiwyg.element.querySelectorAll(".protyle-wysiwyg--select").forEach(item => { - selectElement.push(item); - }); - if (selectElement.length === 0) { - selectElement.push(nodeElement); - } - quickMakeCard(protyle, selectElement); - event.preventDefault(); - event.stopPropagation(); - return true; - } if (matchHotKey(window.siyuan.config.keymap.editor.general.attr.custom, event)) { const topElement = getTopAloneElement(nodeElement); if (selectText === "") {