Docking: Fixed bad ever-growing/ leak (accumulating text into TabsNames forever, fix d38f4dc14 from February 5th, affected docking branch only). (#2109)

This commit is contained in:
omar 2019-02-18 16:50:39 +01:00
parent 5412cdf2c8
commit 7573d10a4a

View File

@ -6452,8 +6452,17 @@ bool ImGui::TabItemEx(ImGuiTabBar* tab_bar, const char* label, bool* p_open,
tab->Window = docked_window; tab->Window = docked_window;
// Append name with zero-terminator // Append name with zero-terminator
tab->NameOffset = tab_bar->TabsNames.size(); if (tab_bar->Flags & ImGuiTabBarFlags_DockNode)
tab_bar->TabsNames.append(label, label + strlen(label) + 1); {
IM_ASSERT(tab->Window != NULL);
tab->NameOffset = -1;
}
else
{
IM_ASSERT(tab->Window == NULL);
tab->NameOffset = tab_bar->TabsNames.size();
tab_bar->TabsNames.append(label, label + strlen(label) + 1); // Append name _with_ the zero-terminator.
}
// If we are not reorderable, always reset offset based on submission order. // If we are not reorderable, always reset offset based on submission order.
// (We already handled layout and sizing using the previous known order, but sizing is not affected by order!) // (We already handled layout and sizing using the previous known order, but sizing is not affected by order!)