From 762ec445e63a95c1545b18b28d528f8ce38a9afd Mon Sep 17 00:00:00 2001 From: ocornut Date: Mon, 28 Aug 2023 11:24:29 +0200 Subject: [PATCH] Docking: Fixed bad bug, dock node host wouldn't merge background. (#6753, #6716) Fixes f422e78. Didn't crash because g.Windows[] is always larger than g.WindowsFocusOrder[]. --- imgui.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/imgui.cpp b/imgui.cpp index 7bce4e4c..059d8c37 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -5341,20 +5341,16 @@ void ImGui::Render() CallContextHooks(&g, ImGuiContextHookType_RenderPre); // Add background ImDrawList (for each active viewport) - for (int n = 0; n != g.Viewports.Size; n++) + for (ImGuiViewportP* viewport : g.Viewports) { - ImGuiViewportP* viewport = g.Viewports[n]; InitViewportDrawData(viewport); if (viewport->BgFgDrawLists[0] != NULL) AddDrawListToDrawDataEx(&viewport->DrawDataP, viewport->DrawDataBuilder.Layers[0], GetBackgroundDrawList(viewport)); } - for (int n = 0; n != g.WindowsFocusOrder.Size; n++) - { - ImGuiWindow* window = g.Windows[n]; + for (ImGuiWindow* window : g.WindowsFocusOrder) if (window->Flags & ImGuiWindowFlags_DockNodeHost) window->DrawList->ChannelsMerge(); - } // Draw modal/window whitening backgrounds RenderDimmedBackgrounds();