diff --git a/app/src/protyle/wysiwyg/index.ts b/app/src/protyle/wysiwyg/index.ts index 7034df1ac..c9714074c 100644 --- a/app/src/protyle/wysiwyg/index.ts +++ b/app/src/protyle/wysiwyg/index.ts @@ -788,14 +788,21 @@ export class WYSIWYG { documentSelf.onmousemove = (moveEvent: MouseEvent) => { let moveTarget: boolean | HTMLElement = moveEvent.target as HTMLElement; // table cell select - if (!protyle.disabled && tableBlockElement && tableBlockElement.contains(moveTarget) && !hasClosestByClassName(tableBlockElement, "protyle-wysiwyg__embed")) { + if (!protyle.disabled && tableBlockElement && tableBlockElement.contains(moveTarget) && + !hasClosestByClassName(tableBlockElement, "protyle-wysiwyg__embed")) { if (moveTarget.classList.contains("table__select")) { moveTarget.classList.add("fn__none"); const pointElement = document.elementFromPoint(moveEvent.clientX, moveEvent.clientY); moveTarget.classList.remove("fn__none"); moveTarget = hasClosestByMatchTag(pointElement, "TH") || hasClosestByMatchTag(pointElement, "TD"); } - if (moveTarget && (moveTarget.tagName === "TH" || moveTarget.tagName === "TD") && (!moveCellElement || !moveCellElement.isSameNode(moveTarget))) { + if (moveTarget && moveTarget.isSameNode(target)) { + tableBlockElement.querySelector(".table__select").removeAttribute("style"); + moveCellElement = moveTarget; + return false; + } + if (moveTarget && (moveTarget.tagName === "TH" || moveTarget.tagName === "TD") && + (!moveCellElement || !moveCellElement.isSameNode(moveTarget))) { // @ts-ignore tableBlockElement.firstElementChild.style.webkitUserModify = "read-only"; let width = target.offsetLeft + target.clientWidth - moveTarget.offsetLeft; diff --git a/app/src/protyle/wysiwyg/input.ts b/app/src/protyle/wysiwyg/input.ts index 0d724ddfa..849caf00b 100644 --- a/app/src/protyle/wysiwyg/input.ts +++ b/app/src/protyle/wysiwyg/input.ts @@ -157,7 +157,9 @@ export const input = async (protyle: IProtyle, blockElement: HTMLElement, range: } // 在数学公式输入框中撤销到最后一步,再继续撤销会撤销编辑器正文内容,从而出发 input 事件 hideElements(["util"], protyle, true); - + if (type === "NodeTable") { + blockElement.querySelector(".table__select").removeAttribute("style") + } const tempElement = document.createElement("template"); tempElement.innerHTML = html; if (needRender && (