hoffstadt / hoffstadt/DearPyGui

Drag and drop on tree node

Open
#2,638 1 comment 0 reactions 0 assignees View on GitHub
state: pending type: bug
Dominant language
C++
Stars
15.6k
Forks
783
PR merge metrics
No merged PRs in 30d

Description

## Version of Dear PyGui

Version: 2.3.0
Operating System: Windows 11

## My Issue/Question
I used treenode to build a file browser with drag-and-drop functionality for moving files. I found that I cannot drag and drop the widget into a treenode that contains its parent treenode; it seems that the `drop_callback` is not being triggered correctly. Notice how the yellow highlight does not appear on uncle treenodes.

## To Reproduce

Steps to reproduce the behavior:
1. see video

## Expected behavior

The widget should be put in the selected treenode.

## Screenshots/Video

https://github.com/user-attachments/assets/83011dc4-3558-4bee-82e1-39964e9cbebb

## Standalone, minimal, complete and verifiable example

```python
import dearpygui.dearpygui as dpg

dpg.create_context()
dpg.create_viewport(width=600, height=500)
dpg.setup_dearpygui()

def drop_cb(s, a, u):
dpg.move_item(a, parent=s)

with dpg.window(tag="test", width=500, height=400):
with dpg.tree_node(label="tree_node A",
drop_callback=drop_cb, payload_type="TEST", ):
dpg.add_selectable(label="select a")
with dpg.drag_payload(parent=dpg.last_item(), drag_data=dpg.last_item(), payload_type="TEST"):
dpg.add_button("a")

with dpg.tree_node(label="tree_node B",
drop_callback=drop_cb, payload_type="TEST"):
dpg.add_selectable(label="select b")
with dpg.drag_payload(parent=dpg.last_item(), drag_data=dpg.last_item(), payload_type="TEST"):
dpg.add_button("b")

with dpg.tree_node(label="tree_node C",
drop_callback=drop_cb, payload_type="TEST"):
dpg.add_selectable(label="select c")
with dpg.drag_payload(parent=dpg.last_item(), drag_data=dpg.last_item(), payload_type="TEST"):
dpg.add_button("c")

dpg.show_viewport()
dpg.set_primary_window("test", True)
dpg.start_dearpygui()
dpg.destroy_context()
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.