Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Vanessa 2024-11-16 17:36:18 +08:00
commit c8b8b28bcc

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)