Description
Godot version
System information
W10
Issue description
When you have any CanvasItem directly under CanvasLayer, make the layer invisible and then toggle that item's visibility twice, it will appear and also makes the whole branch appear:
What's weird about this is that _update_callback()
is not called and the visibility isn't propagated in any way, so this is something related to CanvasLayers and directly to RenderingServer. It doesn't happen for nodes under other CanvasItem.
EDIT:
I didn't really investigate it, but the fact that the bug happens with CanvasLayer and not with CanvasItem suggests that somewhere in RenderingServer, or at whatever part of code is responsible for drawing, there is a condition that checks whether parent CanvasItem is visible and for any other class it just assumes true
. So this code would need to handle also CanvasLayers.
Steps to reproduce
- Add CanvasLayer
- Add Sprite2D under the layer
- Make layer invisible
- Toggle Sprite2D visibility twice
Minimal reproduction project
No response