瀏覽代碼

:sparkles: https://github.com/siyuan-note/siyuan/issues/2911

Vanessa 2 年之前
父節點
當前提交
e58287c450
共有 1 個文件被更改,包括 9 次插入3 次删除
  1. 9 3
      app/src/protyle/toolbar/index.ts

+ 9 - 3
app/src/protyle/toolbar/index.ts

@@ -236,6 +236,7 @@ export class Toolbar {
         if (!nodeElement) {
         if (!nodeElement) {
             return;
             return;
         }
         }
+        const rangeTypes = this.getCurrentType();
         let previousElement: Element
         let previousElement: Element
         let nextElement: Element
         let nextElement: Element
         let previousIndex: number
         let previousIndex: number
@@ -286,8 +287,11 @@ export class Toolbar {
         }
         }
         const actionBtn = action === "toolbar" ? this.element.querySelector(`[data-type="${type}"]`) : undefined;
         const actionBtn = action === "toolbar" ? this.element.querySelector(`[data-type="${type}"]`) : undefined;
         const newNodes: Node[] = [];
         const newNodes: Node[] = [];
-        if (action === "remove" || actionBtn?.classList.contains("protyle-toolbar__item--current")) {
-            actionBtn.classList.remove("protyle-toolbar__item--current");
+        if (action === "remove" || actionBtn?.classList.contains("protyle-toolbar__item--current") ||
+            (action === "range" && rangeTypes.length > 0 && rangeTypes.includes(type))) {
+            if (actionBtn) {
+                actionBtn.classList.remove("protyle-toolbar__item--current");
+            }
             let removeIndex = 0
             let removeIndex = 0
             contents.childNodes.forEach((item: HTMLElement, index) => {
             contents.childNodes.forEach((item: HTMLElement, index) => {
                 if (item.tagName === "WBR") {
                 if (item.tagName === "WBR") {
@@ -322,7 +326,9 @@ export class Toolbar {
                 removeIndex++
                 removeIndex++
             });
             });
         } else {
         } else {
-            this.element.querySelector(`[data-type="${type}"]`).classList.add("protyle-toolbar__item--current");
+            if (!this.element.classList.contains("fn__none")) {
+                this.element.querySelector(`[data-type="${type}"]`).classList.add("protyle-toolbar__item--current");
+            }
             let addIndex = 0
             let addIndex = 0
             contents.childNodes.forEach((item: HTMLElement, index) => {
             contents.childNodes.forEach((item: HTMLElement, index) => {
                 if (item.nodeType === 3) {
                 if (item.nodeType === 3) {