ImDrawList: Automatically calling ChannelsMerge() if not done after a split.
Ties fixing f422e78 in docking: iterating root windows was incorrect. Will be faster to lazily merge in RenderDimmedBackground() rather than iterate all.
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index fe1756a..bbfd99f 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -63,6 +63,7 @@
- Clipper: Added IncludeItemByIndex() helper to include a single item. (#6424, #3841)
- ImDrawData: Fixed an issue where TotalVtxCount/TotalIdxCount does not match the sum
of individual ImDrawList's buffer sizes when a dimming/modal background is rendered. (#6716)
+- ImDrawList: Automatically calling ChannelsMerge() if not done after a split.
- ImDrawList: Fixed OOB access in _CalcCircleAutoSegmentCount when passing excessively
large radius to AddCircle(). (#6657, #5317) [@EggsyCRO, @jdpatdiscord]
- IO: Exposed io.PlatformLocaleDecimalPoint to configure decimal point ('.' or ',') for
diff --git a/imgui.cpp b/imgui.cpp
index eb3b5a2..5fe34e7 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -4812,6 +4812,8 @@
ImGuiContext& g = *GImGui;
ImGuiViewportP* viewport = g.Viewports[0];
g.IO.MetricsRenderWindows++;
+ if (window->DrawList->_Splitter._Count > 1)
+ window->DrawList->ChannelsMerge(); // Merge if user forgot to merge back. Also required in Docking branch for ImGuiWindowFlags_DockNodeHost windows.
ImGui::AddDrawListToDrawDataEx(&viewport->DrawDataP, viewport->DrawDataBuilder.Layers[layer], window->DrawList);
for (ImGuiWindow* child : window->DC.ChildWindows)
if (IsWindowActiveAndVisible(child)) // Clipped children may have been marked not active