Docking: make dock node tab bar ID match parent ID of its tab items.

This commit is contained in:
ocornut
2026-01-30 18:44:01 +01:00
parent 7a49ad6f5a
commit 921842e8a1
2 changed files with 3 additions and 3 deletions

View File

@@ -19406,7 +19406,7 @@ static void ImGui::DockNodeUpdateTabBar(ImGuiDockNode* node, ImGuiWindow* host_w
tab_bar_flags |= ImGuiTabBarFlags_DrawSelectedOverline;
if (!host_window->Collapsed && is_focused)
tab_bar_flags |= ImGuiTabBarFlags_IsFocused;
tab_bar->ID = GetID("#TabBar");
tab_bar->ID = node->ID;// GetID("#TabBar");
tab_bar->SeparatorMinX = node->Pos.x + host_window->WindowBorderSize; // Separator cover the whole node width
tab_bar->SeparatorMaxX = node->Pos.x + node->Size.x - host_window->WindowBorderSize;
BeginTabBarEx(tab_bar, tab_bar_rect, tab_bar_flags);

View File

@@ -9659,7 +9659,7 @@ bool ImGui::BeginTabBarEx(ImGuiTabBar* tab_bar, const ImRect& tab_bar_bb, ImG
return false;
IM_ASSERT(tab_bar->ID != 0);
if ((flags & ImGuiTabBarFlags_DockNode) == 0)
if ((flags & ImGuiTabBarFlags_DockNode) == 0) // Already done
PushOverrideID(tab_bar->ID);
// Add to stack
@@ -9742,7 +9742,7 @@ void ImGui::EndTabBar()
window->DC.CursorPos = tab_bar->BackupCursorPos;
tab_bar->LastTabItemIdx = -1;
if ((tab_bar->Flags & ImGuiTabBarFlags_DockNode) == 0)
if ((tab_bar->Flags & ImGuiTabBarFlags_DockNode) == 0) // Already done
PopID();
g.CurrentTabBarStack.pop_back();