TabBar: expose NextScrollToTabId to internal API.
diff --git a/imgui_internal.h b/imgui_internal.h
index 1bb6bda..e3954bd 100644
--- a/imgui_internal.h
+++ b/imgui_internal.h
@@ -3026,7 +3026,7 @@
ImGuiWindow* Window; // When TabItem is part of a DockNode's TabBar, we hold on to a window.
int LastFrameVisible;
int LastFrameSelected; // This allows us to infer an ordered list of the last activated tabs with little maintenance
- float Offset; // Position relative to beginning of tab
+ float Offset; // Position relative to beginning of tab bar
float Width; // Width currently displayed
float ContentWidth; // Width of label + padding, stored during BeginTabItem() call (misnamed as "Content" would normally imply width of label only)
float RequestedWidth; // Width optionally requested by caller, -1.0f is unused
@@ -3047,6 +3047,7 @@
ImGuiID ID; // Zero for tab-bars used by docking
ImGuiID SelectedTabId; // Selected tab/window
ImGuiID NextSelectedTabId; // Next selected tab/window. Will also trigger a scrolling animation
+ ImGuiID NextScrollToTabId;
ImGuiID VisibleTabId; // Can occasionally be != SelectedTabId (e.g. when previewing contents for Ctrl+Tab preview)
int CurrFrameVisible;
int PrevFrameVisible;
diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp
index 57ab6f0..baf5a73 100644
--- a/imgui_widgets.cpp
+++ b/imgui_widgets.cpp
@@ -9816,6 +9816,11 @@
// Setup next selected tab
ImGuiID scroll_to_tab_id = 0;
+ if (tab_bar->NextScrollToTabId)
+ {
+ scroll_to_tab_id = tab_bar->NextScrollToTabId;
+ tab_bar->NextScrollToTabId = 0;
+ }
if (tab_bar->NextSelectedTabId)
{
tab_bar->SelectedTabId = tab_bar->NextSelectedTabId;