Fixed calling DestroyContext() always saving .ini data with the current context instead of the supplied context pointer. (#2066)
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index 91c5b5d..b2c6a20 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -33,6 +33,11 @@
VERSION 1.66 (In Progress)
-----------------------------------------------------------------------
+Other Changes:
+
+- Fixed calling DestroyContext() always saving .ini data with the current context instead
+ of the supplied context pointer. (#2066)
+
-----------------------------------------------------------------------
VERSION 1.65 (Released 2018-09-06)
diff --git a/imgui.cpp b/imgui.cpp
index f14dfc5..f5f19df 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -3281,7 +3281,12 @@
// Save settings (unless we haven't attempted to load them: CreateContext/DestroyContext without a call to NewFrame shouldn't save an empty file)
if (g.SettingsLoaded && g.IO.IniFilename != NULL)
+ {
+ ImGuiContext* backup_context = GImGui;
+ SetCurrentContext(context);
SaveIniSettingsToDisk(g.IO.IniFilename);
+ SetCurrentContext(backup_context);
+ }
// Clear everything else
for (int i = 0; i < g.Windows.Size; i++)