diff --git a/app/src/mobile/util/initFramework.ts b/app/src/mobile/util/initFramework.ts index 1bff21220..69d99425f 100644 --- a/app/src/mobile/util/initFramework.ts +++ b/app/src/mobile/util/initFramework.ts @@ -183,9 +183,6 @@ export const initFramework = () => { const initEditorName = () => { const inputElement = document.getElementById("toolbarName") as HTMLInputElement; inputElement.setAttribute("placeholder", window.siyuan.languages._kernel[16]); - inputElement.addEventListener("focus", () => { - hideKeyboardToolbar(); - }); inputElement.addEventListener("blur", () => { if (window.siyuan.config.readonly || window.siyuan.config.editor.readOnly || window.siyuan.mobile.editor.protyle.disabled) { return; diff --git a/app/src/mobile/util/keyboardToolbar.ts b/app/src/mobile/util/keyboardToolbar.ts index 1f44a7582..dda3e3478 100644 --- a/app/src/mobile/util/keyboardToolbar.ts +++ b/app/src/mobile/util/keyboardToolbar.ts @@ -87,7 +87,30 @@ export const hideKeyboard = () => { (document.activeElement as HTMLElement).blur(); }; +const disabledKeyboardToolbar = () => { + document.querySelectorAll("#keyboardToolbar button").forEach(item => { + if (item.getAttribute("data-type") !== "all") { + item.setAttribute("disabled", "disabled"); + } + }); +} + +const enKeyboardToolbar = () => { + document.querySelectorAll("#keyboardToolbar button").forEach(item => { + item.removeAttribute("disabled"); + }); +} + export const initKeyboardToolbar = () => { + window.addEventListener('focus', (event) => { + const target = event.target as HTMLElement + if (["INPUT", "TEXTAREA"].includes(target.tagName)) { + disabledKeyboardToolbar() + } else if (target.classList.contains("protyle-wysiwyg")) { + enKeyboardToolbar() + } + }, true); + const toolbarElement = document.getElementById("keyboardToolbar"); toolbarElement.addEventListener("click", (event) => { const target = event.target as HTMLElement;