This commit is contained in:
Vanessa 2023-03-07 12:12:55 +08:00
parent 51b710543d
commit dd5336b9b1

View File

@ -144,8 +144,11 @@ export const activeBlur = () => {
}; };
export const initKeyboardToolbar = () => { export const initKeyboardToolbar = () => {
let preventRender = false;
document.addEventListener("selectionchange", () => { document.addEventListener("selectionchange", () => {
renderKeyboardToolbar(); if (!preventRender) {
renderKeyboardToolbar();
}
}, false); }, false);
const toolbarElement = document.getElementById("keyboardToolbar"); const toolbarElement = document.getElementById("keyboardToolbar");
@ -237,14 +240,21 @@ export const initKeyboardToolbar = () => {
const dynamicElements = document.querySelectorAll("#keyboardToolbar .keyboard__dynamic"); const dynamicElements = document.querySelectorAll("#keyboardToolbar .keyboard__dynamic");
dynamicElements[0].classList.remove("fn__none"); dynamicElements[0].classList.remove("fn__none");
dynamicElements[1].classList.add("fn__none"); dynamicElements[1].classList.add("fn__none");
range.collapse(true);
focusByRange(range); focusByRange(range);
preventRender = true;
setTimeout(() => {
preventRender = false;
}, 1000)
return; return;
} else if (type === "goinline") { } else if (type === "goinline") {
const dynamicElements = document.querySelectorAll("#keyboardToolbar .keyboard__dynamic"); const dynamicElements = document.querySelectorAll("#keyboardToolbar .keyboard__dynamic");
dynamicElements[1].classList.remove("fn__none"); dynamicElements[1].classList.remove("fn__none");
dynamicElements[0].classList.add("fn__none"); dynamicElements[0].classList.add("fn__none");
focusByRange(range); focusByRange(range);
preventRender = true;
setTimeout(() => {
preventRender = false;
}, 1000)
return; return;
} else if (["a", "block-ref", "inline-math", "inline-memo", "text"].includes(type)) { } else if (["a", "block-ref", "inline-math", "inline-memo", "text"].includes(type)) {
protyle.toolbar.element.querySelector(`[data-type="${type}"]`).dispatchEvent(new CustomEvent("click")); protyle.toolbar.element.querySelector(`[data-type="${type}"]`).dispatchEvent(new CustomEvent("click"));