I ran into the same issues being discussed here.
I chose to write a G-code implementation of drag/drop behavior for Tree/Listbox controls with a few notable improvements.
I had to get a little bit creative with how to implement my own custom horizontal bar.
I put a picture control behind transparent Tree/Listbox controls, and then populate/move the picture control as necessary.
This code is also particularly cool because you can use your cursor to select indent level when dropping between items on a tree control.
Moreover, the custom horizontal bar adds a visualization tilda to denote indent level when making this selection.
Code is open-source and on VIPM:
https://www.vipm.io/package/blue_origin_lib_better_drag_and_drop/