Internals: Initialize drawlist earlier in Begin() to facilitate detecting accidental draw earlier than legal. (#3311)
diff --git a/imgui.cpp b/imgui.cpp
index 2df5ce1..c9146e1 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -5606,6 +5606,7 @@
         window->HasCloseButton = (p_open != NULL);
         window->ClipRect = ImVec4(-FLT_MAX,-FLT_MAX,+FLT_MAX,+FLT_MAX);
         window->IDStack.resize(1);
+        window->DrawList->_ResetForNewFrame();
 
         // Restore buffer capacity when woken from a compacted state, to avoid
         if (window->MemoryCompacted)
@@ -5883,7 +5884,7 @@
         // DRAWING
 
         // Setup draw list and outer clipping rectangle
-        window->DrawList->_ResetForNewFrame();
+        IM_ASSERT(window->DrawList->CmdBuffer.Size == 1 && window->DrawList->CmdBuffer[0].ElemCount == 0);
         window->DrawList->PushTextureID(g.Font->ContainerAtlas->TexID);
         PushClipRect(host_rect.Min, host_rect.Max, false);