Skip to content

Keyword "before" of draw_node, draw_layer only work at creation, not work after creation or callback. #1963

@nvglucifer

Description

@nvglucifer

Version of Dear PyGui

Version: 1.8.0
Operating System: Windows 11

My Issue/Question

Keyword "before" of draw_node, draw_layer only work at creation, not work after creation or callback.

To Reproduce

Python code below.
add or remove to see the difference: before="draw_node_1".
click red or yellow checkbox.

Expected behavior

Able to bring_to_back the newly created draw_node or draw_layer, using dpg.configure_item().

Screenshots/Video

2022-11-29_184954

Standalone, minimal, complete and verifiable example

import dearpygui.dearpygui as dpg
dpg.create_context()

with dpg.window():

    with dpg.drawlist(width=300, height=300):

        with dpg.draw_node(tag="draw_node_1"):
            dpg.draw_rectangle(pmin=[50, 50], pmax=[150, 150], color=[255, 0, 0, 255], fill=[255, 0, 0, 255])

        with dpg.draw_node(tag="draw_node_2", before="draw_node_1"):  # , before="draw_node_1"
            dpg.draw_rectangle(pmin=[100, 100], pmax=[200, 200], color=[255, 255, 0, 255], fill=[255, 255, 0, 255])
            # dpg.configure_item("draw_node_2", before="draw_node_1")

        with dpg.draw_node(tag="draw_node_3"):
            dpg.draw_rectangle(pmin=[150, 150], pmax=[250, 250], color=[0, 0, 255, 255], fill=[0, 0, 255, 255])


    def bring_to_front_(sender, app_data, user_data):
        if dpg.get_item_alias(sender) == "red_button":
            dpg.configure_item("draw_node_1", before="draw_node_2")
            dpg.configure_item("yellow_button", default_value=False)
        else:
            dpg.configure_item("draw_node_2", before="draw_node_1")
            dpg.configure_item("red_button", default_value=False)
    dpg.add_text("Bring to front")
    dpg.add_checkbox(label="Red", tag="red_button", callback=bring_to_front_)
    dpg.add_checkbox(label="Yellow", tag="yellow_button", callback=bring_to_front_)

dpg.create_viewport()
dpg.setup_dearpygui()
dpg.show_viewport()
while dpg.is_dearpygui_running():
    dpg.render_dearpygui_frame()
dpg.destroy_context()

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions