Vanessa 2 years ago
parent
commit
dd5336b9b1
1 changed files with 12 additions and 2 deletions
  1. 12 2
      app/src/mobile/util/keyboardToolbar.ts

+ 12 - 2
app/src/mobile/util/keyboardToolbar.ts

@@ -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"));