From 85a3e7cecac267044fecfb79508d2d7feaff8294 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Wed, 3 Apr 2024 00:56:05 +0800 Subject: [PATCH] :bug: Improve outline dnd https://github.com/siyuan-note/siyuan/issues/10828 --- kernel/model/outline.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/kernel/model/outline.go b/kernel/model/outline.go index 8dbb2ca61..74a088d35 100644 --- a/kernel/model/outline.go +++ b/kernel/model/outline.go @@ -87,11 +87,13 @@ func (tx *Transaction) doMoveOutlineHeading(operation *Operation) (ret *TxErr) { targetNode := previousHeading previousHeadingChildren := treenode.HeadingChildren(previousHeading) if 0 < len(previousHeadingChildren) { - for _, child := range previousHeadingChildren { - if child.ID == headingID { - break - } - targetNode = child + targetNode = previousHeadingChildren[len(previousHeadingChildren)-1] + } + + for _, h := range headingChildren { + if h.ID == targetNode.ID { + // 目标节点是当前标题的子节点,不需要移动 + return } } @@ -133,7 +135,6 @@ func (tx *Transaction) doMoveOutlineHeading(operation *Operation) (ret *TxErr) { targetNode := parentHeading parentHeadingChildren := treenode.HeadingChildren(parentHeading) - // 找到下方第一个非标题节点 var tmp []*ast.Node for _, child := range parentHeadingChildren { @@ -143,7 +144,6 @@ func (tx *Transaction) doMoveOutlineHeading(operation *Operation) (ret *TxErr) { tmp = append(tmp, child) } parentHeadingChildren = tmp - if 0 < len(parentHeadingChildren) { for _, child := range parentHeadingChildren { if child.ID == headingID {