@ -6802,6 +6802,7 @@ namespace ImGui
ImGuiTabBar : : ImGuiTabBar ( )
{
Flags = ImGuiTabBarFlags_None ;
ID = 0 ;
SelectedTabId = NextSelectedTabId = VisibleTabId = 0 ;
CurrFrameVisible = PrevFrameVisible = - 1 ;
@ -6809,12 +6810,12 @@ ImGuiTabBar::ImGuiTabBar()
WidthAllTabs = WidthAllTabsIdeal = 0.0f ;
ScrollingAnim = ScrollingTarget = ScrollingTargetDistToVisibility = ScrollingSpeed = 0.0f ;
ScrollingRectMinX = ScrollingRectMaxX = 0.0f ;
Flags = ImGuiTabBarFlags_None ;
ReorderRequestTabId = 0 ;
ReorderRequestDir = 0 ;
TabsActiveCount = 0 ;
WantLayout = VisibleTabWasSubmitted = TabsAddedNew = false ;
LastTabItemIdx = - 1 ;
BeginCount = 0 ;
WantLayout = VisibleTabWasSubmitted = TabsAddedNew = false ;
}
static int IMGUI_CDECL TabItemComparerBySection ( const void * lhs , const void * rhs )
@ -6878,9 +6879,11 @@ bool ImGui::BeginTabBarEx(ImGuiTabBar* tab_bar, const ImRect& tab_bar_bb, ImG
g . CurrentTabBar = tab_bar ;
// Append with multiple BeginTabBar()/EndTabBar() pairs.
tab_bar - > BackupCursorPos = window - > DC . CursorPos ;
if ( tab_bar - > CurrFrameVisible = = g . FrameCount )
{
window - > DC . CursorPos = tab_bar - > TabsContentsMin ;
tab_bar - > BeginCount + + ;
return true ;
}
@ -6903,6 +6906,7 @@ bool ImGui::BeginTabBarEx(ImGuiTabBar* tab_bar, const ImRect& tab_bar_bb, ImG
tab_bar - > CurrTabsContentsHeight = 0.0f ;
tab_bar - > FramePadding = g . Style . FramePadding ;
tab_bar - > TabsActiveCount = 0 ;
tab_bar - > BeginCount = 1 ;
// Set cursor pos in a way which only be used in the off-chance the user erroneously submits item before BeginTabItem(): items will overlap
tab_bar - > TabsContentsMin . x = tab_bar - > BarRect . Min . x ;
@ -6949,6 +6953,8 @@ void ImGui::EndTabBar()
{
window - > DC . CursorPos . y = tab_bar - > BarRect . Max . y + tab_bar - > PrevTabsContentsHeight ;
}
if ( tab_bar - > BeginCount > 1 )
window - > DC . CursorPos = tab_bar - > BackupCursorPos ;
if ( ( tab_bar - > Flags & ImGuiTabBarFlags_DockNode ) = = 0 )
PopID ( ) ;
@ -7543,7 +7549,7 @@ bool ImGui::TabItemEx(ImGuiTabBar* tab_bar, const char* label, bool* p_open,
tab_bar - > TabsAddedNew = true ;
tab_is_new = true ;
}
tab_bar - > LastTabItemIdx = ( short ) tab_bar - > Tabs . index_from_ptr ( tab ) ;
tab_bar - > LastTabItemIdx = ( ImS8 ) tab_bar - > Tabs . index_from_ptr ( tab ) ;
tab - > ContentWidth = size . x ;
tab - > BeginOrder = tab_bar - > TabsActiveCount + + ;