From cb8ead1f7198924f97e52973d115e1d4eaeda2f3 Mon Sep 17 00:00:00 2001 From: Rokas Kupstys Date: Tue, 12 Jul 2022 16:21:44 +0300 Subject: [PATCH] Docking: Fix docked window contents not rendering when switching with CTRL+Tab. (regression from 8eb8689). --- docs/CHANGELOG.txt | 2 ++ imgui.cpp | 4 ++-- imgui_widgets.cpp | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt index a4ccf34f..2511c512 100644 --- a/docs/CHANGELOG.txt +++ b/docs/CHANGELOG.txt @@ -135,6 +135,8 @@ Docking+Viewports Branch: - Docking, Nav: Fixed using gamepad/keyboard navigation not being able enter menu layer when it only contained the standard Collapse/Close buttons and no actual menu. (#5463, #4792) +- Docking: Fixed regression introduced in v1.87 when docked window content not rendered + while switching between with CTRL+Tab. [@rokups] - Backends: GLFW: Fixed leftover static variable preventing from changing or reinitializing backend while application is running. (#4616, #5434) [@rtoumazet] diff --git a/imgui.cpp b/imgui.cpp index 2c691f67..16253963 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -15218,7 +15218,7 @@ static void ImGui::DockNodeUpdate(ImGuiDockNode* node) if (node->TabBar && node->TabBar->SelectedTabId) node->SelectedTabId = node->TabBar->SelectedTabId; else if (node->Windows.Size > 0) - node->SelectedTabId = node->Windows[0]->ID; + node->SelectedTabId = node->Windows[0]->TabId; // Draw payload drop target if (host_window && node->IsVisible) @@ -15456,7 +15456,7 @@ static void ImGui::DockNodeUpdateTabBar(ImGuiDockNode* node, ImGuiWindow* host_w // Apply NavWindow focus back to the tab bar if (g.NavWindow && g.NavWindow->RootWindow->DockNode == node) - tab_bar->SelectedTabId = g.NavWindow->RootWindow->ID; + tab_bar->SelectedTabId = g.NavWindow->RootWindow->TabId; // Selected newly added tabs, or persistent tab ID if the tab bar was just recreated if (tab_bar_is_recreated && TabBarFindTabByID(tab_bar, node->SelectedTabId) != NULL) diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp index 46772f6b..4fe2260f 100644 --- a/imgui_widgets.cpp +++ b/imgui_widgets.cpp @@ -7694,7 +7694,7 @@ static void ImGui::TabBarLayout(ImGuiTabBar* tab_bar) // CTRL+TAB can override visible tab temporarily if (g.NavWindowingTarget != NULL && g.NavWindowingTarget->DockNode && g.NavWindowingTarget->DockNode->TabBar == tab_bar) - tab_bar->VisibleTabId = scroll_to_tab_id = g.NavWindowingTarget->ID; + tab_bar->VisibleTabId = scroll_to_tab_id = g.NavWindowingTarget->TabId; // Update scrolling if (scroll_to_tab_id != 0)