This commit is contained in:
Daniel 2024-11-16 17:29:59 +08:00
parent 3c31baaf04
commit 818d1746c0
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -358,6 +358,10 @@ func (tx *Transaction) doMove(operation *Operation) (ret *TxErr) {
return
}
if isMovingParentIntoChild(srcNode, targetNode) {
return
}
for i := len(headingChildren) - 1; -1 < i; i-- {
c := headingChildren[i]
targetNode.InsertAfter(c)
@ -407,6 +411,10 @@ func (tx *Transaction) doMove(operation *Operation) (ret *TxErr) {
return
}
if isMovingParentIntoChild(srcNode, targetNode) {
return
}
processed := false
if ast.NodeSuperBlock == targetNode.Type {
// 在布局节点后插入
@ -474,6 +482,15 @@ func isMovingFoldHeadingIntoSelf(targetNode *ast.Node, headingChildren []*ast.No
return false
}
func isMovingParentIntoChild(srcNode, targetNode *ast.Node) bool {
for parent := targetNode.Parent; nil != parent; parent = parent.Parent {
if parent.ID == srcNode.ID {
return true
}
}
return false
}
func (tx *Transaction) doPrependInsert(operation *Operation) (ret *TxErr) {
var err error
block := treenode.GetBlockTree(operation.ParentID)