Przeglądaj źródła

:art: fix https://github.com/siyuan-note/siyuan/issues/11882

Vanessa 1 rok temu
rodzic
commit
b949e53568
1 zmienionych plików z 21 dodań i 5 usunięć
  1. 21 5
      app/src/protyle/gutter/index.ts

+ 21 - 5
app/src/protyle/gutter/index.ts

@@ -75,7 +75,7 @@ export class Gutter {
             hideTooltip();
             window.siyuan.menus.menu.remove();
             const buttonElement = event.target.parentElement;
-            const selectIds: string[] = [];
+            let selectIds: string[] = [];
             let selectElements: Element[] = [];
             let avElement: Element;
             if (buttonElement.dataset.rowId) {
@@ -90,11 +90,27 @@ export class Gutter {
                     selectElements.push(item);
                 });
             } else {
-                protyle.wysiwyg.element.querySelector(`[data-node-id="${buttonElement.getAttribute("data-node-id")}"]`)?.classList.add("protyle-wysiwyg--select");
+                const gutterId = buttonElement.getAttribute("data-node-id")
                 selectElements = Array.from(protyle.wysiwyg.element.querySelectorAll(".protyle-wysiwyg--select"));
-                selectElements.forEach(item => {
-                    selectIds.push(item.getAttribute("data-node-id"));
-                });
+                let selectedIncludeGutter = false;
+                selectElements.forEach((item => {
+                    const itemId = item.getAttribute("data-node-id")
+                    if (itemId === gutterId) {
+                        selectedIncludeGutter = true
+                    }
+                    selectIds.push(itemId);
+                }))
+                if (!selectedIncludeGutter) {
+                    const gutterNodeElement = protyle.wysiwyg.element.querySelector(`[data-node-id="${gutterId}"]`)
+                    if (gutterNodeElement) {
+                        selectElements.forEach((item => {
+                           item.classList.remove("protyle-wysiwyg--select")
+                        }));
+                        gutterNodeElement.classList.add("protyle-wysiwyg--select")
+                        selectElements = [gutterNodeElement]
+                        selectIds = [gutterId];
+                    }
+                }
             }
 
             const ghostElement = document.createElement("div");