Docking: Fixed restoring of tab order within a dockspace or a split node.

(tests in "docking_tab_order")
This commit is contained in:
ocornut 2021-04-12 16:51:05 +02:00
parent 65cd14502c
commit 539de4387b
2 changed files with 3 additions and 2 deletions

View File

@ -137,6 +137,7 @@ Docking Branch:
- Docking: DockSpace() returns its node ID.
- Docking: Dockspace() never draws a background. (#3924)
- Docking: undocking nodes/windows covering most of the monitor max their size down to 90% to ease further manipulations.
- Docking: Fixed restoring of tab order within a dockspace or a split node.
- Viewports: Hotfix for crash in monitor array access, caused by 4b9bc4902. (#3967)
- Backends, Viewports: GLFW: Add a workaround for stuck keys after closing a GLFW window (#3837).
- Backends, Viewports: Vulkan: Rebuild swapchain on VK_SUBOPTIMAL_KHR. (#3881)

View File

@ -15464,9 +15464,9 @@ void ImGui::BeginDocked(ImGuiWindow* window, bool* p_open)
else
window->Flags &= ~ImGuiWindowFlags_NoTitleBar; // Clear the NoTitleBar flag in case the user set it: confusingly enough we need a title bar height so we are correctly offset, but it won't be displayed!
// Save new dock order only if the tab bar has been visible once.
// Save new dock order only if the window has been visible once already
// This allows multiple windows to be created in the same frame and have their respective dock orders preserved.
if (node->TabBar && node->TabBar->CurrFrameVisible != -1)
if (node->TabBar && window->WasActive)
window->DockOrder = (short)DockNodeGetTabOrder(window);
if ((node->WantCloseAll || node->WantCloseTabId == window->ID) && p_open != NULL)