Hello! Any news on this problem? We're trying to find solution now as well. The old way of getting node element by DNDEvent.getTarget() is not working any more. getTarget() on DNDMoveHandler just returns root parent of the Tree widget.

DndDropEvent has a getter 'getDragEndEvent' which returns a DragEndEvent, representing the end of the drag - you can get the x and y values there, the element where the user started the drag, and the native event itself, which contains the element you are currently over.

For more details on how to turn _that_ into an item, check out the Tree API, which has a few methods to turn dom elements into data (see Tree.findNode(Element) and TreeNode<N>.getModel()). You can use the x,y values mentioned above (along with the size of the element that was dropped on) to try to decide if they inserted before or after.

Also, consider using the Tree drag source and drop target classes - they are designed to do this work for you. Additionally, you can listen to the TreeStore for add and remove events to see what changes in there instead of focusing on dom manipulation.