Browse Source

Shutdown() clear out some remaining pointers (#836)

ocornut 9 years ago
parent
commit
6e87f071b8
1 changed files with 5 additions and 0 deletions
  1. 5 0
      imgui.cpp

+ 5 - 0
imgui.cpp

@@ -2335,10 +2335,13 @@ void ImGui::Shutdown()
     }
     }
     g.Windows.clear();
     g.Windows.clear();
     g.WindowsSortBuffer.clear();
     g.WindowsSortBuffer.clear();
+    g.CurrentWindow = NULL;
     g.CurrentWindowStack.clear();
     g.CurrentWindowStack.clear();
     g.FocusedWindow = NULL;
     g.FocusedWindow = NULL;
     g.HoveredWindow = NULL;
     g.HoveredWindow = NULL;
     g.HoveredRootWindow = NULL;
     g.HoveredRootWindow = NULL;
+    g.ActiveIdWindow = NULL;
+    g.MovedWindow = NULL;
     for (int i = 0; i < g.Settings.Size; i++)
     for (int i = 0; i < g.Settings.Size; i++)
         ImGui::MemFree(g.Settings[i].Name);
         ImGui::MemFree(g.Settings[i].Name);
     g.Settings.clear();
     g.Settings.clear();
@@ -2347,6 +2350,8 @@ void ImGui::Shutdown()
     g.FontStack.clear();
     g.FontStack.clear();
     g.OpenPopupStack.clear();
     g.OpenPopupStack.clear();
     g.CurrentPopupStack.clear();
     g.CurrentPopupStack.clear();
+    g.SetNextWindowSizeConstraintCallback = NULL;
+    g.SetNextWindowSizeConstraintCallbackUserData = NULL;
     for (int i = 0; i < IM_ARRAYSIZE(g.RenderDrawLists); i++)
     for (int i = 0; i < IM_ARRAYSIZE(g.RenderDrawLists); i++)
         g.RenderDrawLists[i].clear();
         g.RenderDrawLists[i].clear();
     g.OverlayDrawList.ClearFreeMemory();
     g.OverlayDrawList.ClearFreeMemory();