From f2f112cebe8fe74bbefeef1b1f879d3e5565037f Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Wed, 27 Mar 2024 22:26:47 +0800 Subject: [PATCH] :art: The outline item in the outline panel supports dragging to adjust the level and position https://github.com/siyuan-note/siyuan/issues/7957 --- kernel/model/outline.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/kernel/model/outline.go b/kernel/model/outline.go index 9d519821a..464bc0ebb 100644 --- a/kernel/model/outline.go +++ b/kernel/model/outline.go @@ -64,13 +64,17 @@ func (tx *Transaction) doMoveOutlineHeading(operation *Operation) (ret *TxErr) { previousHeadingChildren := treenode.HeadingChildren(previousHeading) if 0 < len(previousHeadingChildren) { for _, child := range previousHeadingChildren { - targetNode = child if child.ID == headingID { break } + targetNode = child } } + if targetNode == heading.Previous { + return + } + diffLevel := heading.HeadingLevel - previousHeading.HeadingLevel heading.HeadingLevel = previousHeading.HeadingLevel @@ -92,10 +96,16 @@ func (tx *Transaction) doMoveOutlineHeading(operation *Operation) (ret *TxErr) { parentHeadingChildren := treenode.HeadingChildren(parentHeading) if 0 < len(parentHeadingChildren) { for _, child := range parentHeadingChildren { - targetNode = child if child.ID == headingID { break } + targetNode = child + } + } + + if targetNode == heading.Previous { + if parentHeading.HeadingLevel < heading.HeadingLevel { + return } }