|
@@ -15786,6 +15786,7 @@ ImGuiDockNode::ImGuiDockNode(ImGuiID id)
|
|
|
LastFocusedNodeId = 0;
|
|
|
SelectedTabId = 0;
|
|
|
WantCloseTabId = 0;
|
|
|
+ RefViewportId = 0;
|
|
|
AuthorityForPos = AuthorityForSize = ImGuiDataAuthority_DockNode;
|
|
|
AuthorityForViewport = ImGuiDataAuthority_Auto;
|
|
|
IsVisible = true;
|
|
@@ -16277,6 +16278,7 @@ static void ImGui::DockNodeUpdate(ImGuiDockNode* node)
|
|
|
single_window->ViewportOwned = true;
|
|
|
}
|
|
|
}
|
|
|
+ node->RefViewportId = single_window->ViewportId;
|
|
|
}
|
|
|
|
|
|
DockNodeHideHostWindow(node);
|
|
@@ -16366,6 +16368,8 @@ static void ImGui::DockNodeUpdate(ImGuiDockNode* node)
|
|
|
// Sync Viewport
|
|
|
if (node->AuthorityForViewport == ImGuiDataAuthority_Window && ref_window)
|
|
|
SetNextWindowViewport(ref_window->ViewportId);
|
|
|
+ else if (node->AuthorityForViewport == ImGuiDataAuthority_Window && node->RefViewportId != 0)
|
|
|
+ SetNextWindowViewport(node->RefViewportId);
|
|
|
|
|
|
SetNextWindowClass(&node->WindowClass);
|
|
|
|
|
@@ -16408,6 +16412,7 @@ static void ImGui::DockNodeUpdate(ImGuiDockNode* node)
|
|
|
if (node->WantMouseMove && node->HostWindow)
|
|
|
DockNodeStartMouseMovingWindow(node, node->HostWindow);
|
|
|
}
|
|
|
+ node->RefViewportId = 0; // Clear when we have a host window
|
|
|
|
|
|
// Update focused node (the one whose title bar is highlight) within a node tree
|
|
|
if (node->IsSplitNode())
|