diff --git a/app/src/block/Panel.ts b/app/src/block/Panel.ts index 7dfc31aa4..49f996ae6 100644 --- a/app/src/block/Panel.ts +++ b/app/src/block/Panel.ts @@ -183,9 +183,6 @@ export class BlockPanel { }, typewriterMode: false, after: (editor) => { - editorElement.addEventListener("mouseleave", () => { - hideElements(["gutter"], editor.protyle); - }); if (response.data.rootID !== this.nodeIds[index]) { editor.protyle.breadcrumb.element.parentElement.lastElementChild.classList.remove("fn__none"); } diff --git a/app/src/boot/globalEvent/mousemove.ts b/app/src/boot/globalEvent/mousemove.ts index c21974533..91936db83 100644 --- a/app/src/boot/globalEvent/mousemove.ts +++ b/app/src/boot/globalEvent/mousemove.ts @@ -35,6 +35,7 @@ export const windowMouseMove = (event: MouseEvent & { target: HTMLElement }, mou coordinates.screenX = event.screenX; coordinates.screenY = event.screenY; + // breadcrumb if (window.siyuan.hideBreadcrumb) { window.siyuan.hideBreadcrumb = false; getAllEditor().forEach(item => { @@ -44,6 +45,8 @@ export const windowMouseMove = (event: MouseEvent & { target: HTMLElement }, mou } }); } + + // Dock if (!mouseIsEnter && event.buttons === 0 && // 鼠标按键被按下时不触发 window.siyuan.layout.bottomDock && @@ -79,6 +82,8 @@ export const windowMouseMove = (event: MouseEvent & { target: HTMLElement }, mou window.siyuan.layout.bottomDock.showDock(); } } + + // gutter const eventPath0 = event.composedPath()[0] as HTMLElement; if (eventPath0 && eventPath0.nodeType !== 3 && eventPath0.classList.contains("protyle-wysiwyg") && eventPath0.style.paddingLeft) { // 光标在编辑器右边也需要进行显示 @@ -179,6 +184,13 @@ export const windowMouseMove = (event: MouseEvent & { target: HTMLElement }, mou return; } + if (!hasClosestByClassName(event.target, "protyle", true)) { + document.querySelectorAll(".protyle-gutters").forEach(item => { + item.classList.add("fn__none"); + item.innerHTML = ""; + }); + } + const target = event.target as Element; const blockElement = hasClosestByClassName(target, "table"); if (blockElement && blockElement.style.cursor !== "col-resize" && !hasClosestByClassName(blockElement, "protyle-wysiwyg__embed")) { diff --git a/app/src/protyle/ui/hideElements.ts b/app/src/protyle/ui/hideElements.ts index ac3956535..2842f2da5 100644 --- a/app/src/protyle/ui/hideElements.ts +++ b/app/src/protyle/ui/hideElements.ts @@ -4,7 +4,7 @@ import {getCurrentEditor} from "../../mobile/editor"; import {getAllEditor} from "../../layout/getAll"; /// #endif -// "gutter", "toolbar", "select", "hint", "util", "dialog" +// "gutter", "toolbar", "select", "hint", "util", "dialog", "gutterOnly" export const hideElements = (panels: string[], protyle?: IProtyle, focusHide = false) => { if (!protyle) { if (panels.includes("dialog")) {