private static void RenderWidgetTreeNode(WidgetBase widget) { ImGui.PushID($"widget${widget.GetHashCode()}"); var zIndex = ""; if (widget is WidgetContainer window && window.GetParent() == null) { zIndex = $" Z:{window.ZIndex}"; } if (ImGui.TreeNode($"{widget.GetType().Name} #{widget.GetHashCode()} - {widget.GetId()} ({widget.GetSourceURI()}){zIndex}")) { if (ImGui.IsItemHovered()) { RenderWidgetOutline(widget); } if (widget is WidgetContainer container) { foreach (var child in container.GetChildren()) { RenderWidgetTreeNode(child); } } ImGui.TreePop(); } else { // Render the hover outline even when collapsed if (ImGui.IsItemHovered()) { RenderWidgetOutline(widget); } } }