TreeNode: fixed layout so that TreeNode("") or TreeNode("##HiddenLabel") may properly be used with SameLine(0,0). (#7505, #282)

Also adjust some of the interact_bb padding, arbitrary interact padding not meaningful as empty label is likely to be followed by extra item. User likely to use ImGuiTreeNodeFlags_SpanAvailWidth.
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index 5f8654c..f299674 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -41,6 +41,19 @@
 
 Breaking changes:
 
+- TreeNode: Fixed a layout inconsistency when using a empty/hidden label followed
+  by a SameLine() call. (#7505, #282)
+     Before: TreeNode("##Hidden"); SameLine(); Text("Hello");
+             // This was actually incorrect! BUT appeared to look ok with the default style
+             // where ItemSpacing.x == FramePadding.x * 2 (it didn't look aligned otherwise).
+     After:  TreeNode("##Hidden"); SameLine(0, 0); Text("Hello");
+             // This is correct for all values in style.
+  With the fix, IF you were successfully using TreeNode("")+SameLine(); you will now
+  have extra spacing between your TreeNode and the following item. You'll need to change
+  the SameLine() call to SameLine(0,0) to remove this extraneous spacing.
+  This seemed like the more sensible fix that's not making things less consistent.
+  (Note: when using this idiom you are likely to also use ImGuiTreeNodeFlags_SpanAvailWidth).
+
 Other changes:
 
 - Fonts: Fixed font ascent and descent calculation when a font hits exact integer values.
diff --git a/imgui.cpp b/imgui.cpp
index 5a9b31b..1a5a8ba 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -430,6 +430,12 @@
  When you are not sure about an old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files.
  You can read releases logs https://github.com/ocornut/imgui/releases for more details.
 
+ - 2024/04/18 (1.90.6) - treeNode: Fixed a layout inconsistency when using an empty/hidden label followed by a SameLine() call. (#7505, #282)
+                           - old: TreeNode("##Hidden"); SameLine(); Text("Hello");     // <-- This was actually incorrect! BUT appeared to look ok with the default style where ItemSpacing.x == FramePadding.x * 2 (it didn't look aligned otherwise).
+                           - new: TreeNode("##Hidden"); SameLine(0, 0); Text("Hello"); // <-- This is correct for all styles values.
+                         with the fix, IF you were successfully using TreeNode("")+SameLine(); you will now have extra spacing between your TreeNode and the following item.
+                         You'll need to change the SameLine() call to SameLine(0,0) to remove this extraneous spacing. This seemed like the more sensible fix that's not making things less consistent.
+                         (Note: when using this idiom you are likely to also use ImGuiTreeNodeFlags_SpanAvailWidth).
  - 2024/03/18 (1.90.5) - merged the radius_x/radius_y parameters in ImDrawList::AddEllipse(), AddEllipseFilled() and PathEllipticalArcTo() into a single ImVec2 parameter. Exceptionally, because those functions were added in 1.90, we are not adding inline redirection functions. The transition is easy and should affect few users. (#2743, #7417)
  - 2024/03/08 (1.90.5) - inputs: more formally obsoleted GetKeyIndex() when IMGUI_DISABLE_OBSOLETE_FUNCTIONS is set. It has been unnecessary and a no-op since 1.87 (it returns the same value as passed when used with a 1.87+ backend using io.AddKeyEvent() function). (#4921)
                            - IsKeyPressed(GetKeyIndex(ImGuiKey_XXX)) -> use IsKeyPressed(ImGuiKey_XXX)
diff --git a/imgui.h b/imgui.h
index 69f3032..510a09d 100644
--- a/imgui.h
+++ b/imgui.h
@@ -28,7 +28,7 @@
 // Library Version
 // (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
 #define IMGUI_VERSION       "1.90.6 WIP"
-#define IMGUI_VERSION_NUM   19051
+#define IMGUI_VERSION_NUM   19052
 #define IMGUI_HAS_TABLE
 
 /*
diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp
index 7dc52bb..8985dd9 100644
--- a/imgui_widgets.cpp
+++ b/imgui_widgets.cpp
@@ -6201,14 +6201,14 @@
 
     const float text_offset_x = g.FontSize + (display_frame ? padding.x * 3 : padding.x * 2);           // Collapsing arrow width + Spacing
     const float text_offset_y = ImMax(padding.y, window->DC.CurrLineTextBaseOffset);                    // Latch before ItemSize changes it
-    const float text_width = g.FontSize + (label_size.x > 0.0f ? label_size.x + padding.x * 2 : 0.0f);  // Include collapsing
+    const float text_width = g.FontSize + label_size.x + padding.x * 2;                                 // Include collapsing arrow
     ImVec2 text_pos(window->DC.CursorPos.x + text_offset_x, window->DC.CursorPos.y + text_offset_y);
     ItemSize(ImVec2(text_width, frame_height), padding.y);
 
     // For regular tree nodes, we arbitrary allow to click past 2 worth of ItemSpacing
     ImRect interact_bb = frame_bb;
     if (!display_frame && (flags & (ImGuiTreeNodeFlags_SpanAvailWidth | ImGuiTreeNodeFlags_SpanFullWidth | ImGuiTreeNodeFlags_SpanAllColumns)) == 0)
-        interact_bb.Max.x = frame_bb.Min.x + text_width + style.ItemSpacing.x * 2.0f;
+        interact_bb.Max.x = frame_bb.Min.x + text_width + (label_size.x > 0.0f ? style.ItemSpacing.x * 2.0f : 0.0f);
 
     // Modify ClipRect for the ItemAdd(), faster than doing a PushColumnsBackground/PushTableBackgroundChannel for every Selectable..
     const float backup_clip_rect_min_x = window->ClipRect.Min.x;