From 913d03af1687df194f5d0442e36b2a2f64c6e2ac Mon Sep 17 00:00:00 2001 From: melloware Date: Fri, 23 Feb 2024 13:43:50 -0500 Subject: [PATCH] Fix #11513: Tree wrong dnd index for sibling going down --- .../resources/primefaces/tree/tree.vertical.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/primefaces/src/main/resources/META-INF/resources/primefaces/tree/tree.vertical.js b/primefaces/src/main/resources/META-INF/resources/primefaces/tree/tree.vertical.js index 4e26182f43..5facedf624 100644 --- a/primefaces/src/main/resources/META-INF/resources/primefaces/tree/tree.vertical.js +++ b/primefaces/src/main/resources/META-INF/resources/primefaces/tree/tree.vertical.js @@ -754,6 +754,15 @@ PrimeFaces.widget.VerticalTree = PrimeFaces.widget.BaseTree.extend({ draggedSourceKeys = draggedSourceKeys.filter(function(key) { return $.inArray(key, $this.invalidSourceKeys) === -1; }); + + // #11513 dndIndex is based on whether you are dragging up or down + var dndIndex = dropPoint.prevAll('li.ui-treenode').length; + if (parseInt(dragNodeKey) < dndIndex) { + var nextDndIndex = dropPoint.nextAll('li.ui-treenode').length; + if (nextDndIndex > 0) { + dndIndex = nextDndIndex; + } + } if (draggedSourceKeys && draggedSourceKeys.length) { draggedSourceKeys = draggedSourceKeys.reverse().join(','); @@ -761,7 +770,7 @@ PrimeFaces.widget.VerticalTree = PrimeFaces.widget.BaseTree.extend({ 'dragNodeKey': draggedSourceKeys, 'dropNodeKey': dropNodeKey, 'dragSource': dragSource.id, - 'dndIndex': dropPoint.prevAll('li.ui-treenode').length, + 'dndIndex': dndIndex, 'transfer': transfer, 'isDroppedNodeCopy': isDroppedNodeCopy });