Просмотр исходного кода

:bug: 当块引用与所引用内容位于同一个文档时,块引用与所引用的内容块进行交换功能异常 Fix https://github.com/siyuan-note/insider/issues/1085

Liang Ding 2 лет назад
Родитель
Сommit
63de0c79f9
1 измененных файлов с 12 добавлено и 4 удалено
  1. 12 4
      kernel/model/block.go

+ 12 - 4
kernel/model/block.go

@@ -106,7 +106,13 @@ func SwapBlockRef(refID, defID string, includeChildren bool) (err error) {
 	if nil != err {
 	if nil != err {
 		return
 		return
 	}
 	}
-	defNode := treenode.GetNodeInTree(defTree, defID)
+	sameTree := defTree.ID == refTree.ID
+	var defNode *ast.Node
+	if !sameTree {
+		defNode = treenode.GetNodeInTree(defTree, defID)
+	} else {
+		defNode = treenode.GetNodeInTree(refTree, defID)
+	}
 	if nil == defNode {
 	if nil == defNode {
 		return
 		return
 	}
 	}
@@ -185,9 +191,11 @@ func SwapBlockRef(refID, defID string, includeChildren bool) (err error) {
 	if err = writeJSONQueue(refTree); nil != err {
 	if err = writeJSONQueue(refTree); nil != err {
 		return
 		return
 	}
 	}
-	treenode.ReindexBlockTree(defTree)
-	if err = writeJSONQueue(defTree); nil != err {
-		return
+	if !sameTree {
+		treenode.ReindexBlockTree(defTree)
+		if err = writeJSONQueue(defTree); nil != err {
+			return
+		}
 	}
 	}
 	WaitForWritingFiles()
 	WaitForWritingFiles()
 	util.ReloadUI()
 	util.ReloadUI()