-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GraphEdit get_children() always returns internal child '_connection_layer' #91857
Comments
@Geometror The node's internal flag was removed in a81561c (expand the diff of |
This is a duplicate of #85005. From #88014:
It's sadly a limitation we have to live with for now since we don't allow internal nodes at arbitrary positions (in children), just front and back. GraphEdit is kind of an exotic Control node, which reaches the limits of Godot's UI system. As a workaround you have to filter out the connection layer by yourself (it has an specific name However, the least what we could do is mentioning this in the docs. I know, there were some concerns regarding human-readable unique names for (internal) nodes (#76563), but in this case it's necessary I think. |
Thanks for clarifying. I'm curious if there's any plans for a change which would fix this either by lifting the limitations mentioned or by changing how GraphEdit works? After all, just mentioning it in the docs and never addressing it doesn't seem like a permanent fix. |
As a stop-gap measure, wouldn't it be better to have get_children() overridden for GraphEdit specifically so that it filters out _connection_layer if include_internal is false? This way, it does not have breaking changes and basic Node rules are respected. This could be removed down the line should the base causes be fixed. |
Ah, so we are requiring users to rely on internal node names. Another argument for PR #76563. |
Tested versions
System information
Godot v4.3.dev6 - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3080 Ti (NVIDIA; 31.0.15.5176) - AMD Ryzen 5 5600X 6-Core Processor (12 Threads)
Issue description
The get_children() method for GraphEdit node always returns an internal node named '_connection_layer' regardless of the include_internal parameter.
Steps to reproduce
Minimal reproduction project (MRP)
issuerepro_mrp.zip
The text was updated successfully, but these errors were encountered: