Settings: Initializing ImGuiSettingsWindow so external users don't end up with uncleared data. Exposed MarkIniSettingsDirty() in imgui_internal.h

This commit is contained in:
omar 2017-11-28 00:32:25 +01:00
parent e000ee0116
commit f3ec608c19
2 changed files with 11 additions and 0 deletions

View File

@ -2725,6 +2725,13 @@ static void SaveIniSettingsToMemory(ImVector<char>& out_buf)
out_buf.swap(buf.Buf); out_buf.swap(buf.Buf);
} }
void ImGui::MarkIniSettingsDirty()
{
ImGuiContext& g = *GImGui;
if (g.SettingsDirtyTimer <= 0.0f)
g.SettingsDirtyTimer = g.IO.IniSavingRate;
}
static void MarkIniSettingsDirty(ImGuiWindow* window) static void MarkIniSettingsDirty(ImGuiWindow* window)
{ {
ImGuiContext& g = *GImGui; ImGuiContext& g = *GImGui;

View File

@ -378,6 +378,8 @@ struct ImGuiSettingsWindow
ImVec2 Pos; ImVec2 Pos;
ImVec2 Size; ImVec2 Size;
bool Collapsed; bool Collapsed;
ImGuiSettingsWindow() { Name = NULL; Id = 0; Pos = Size = ImVec2(0,0); Collapsed = false; }
}; };
struct ImGuiSettingsHandler struct ImGuiSettingsHandler
@ -801,6 +803,8 @@ namespace ImGui
IMGUI_API void Initialize(); IMGUI_API void Initialize();
IMGUI_API void MarkIniSettingsDirty();
IMGUI_API void SetActiveID(ImGuiID id, ImGuiWindow* window); IMGUI_API void SetActiveID(ImGuiID id, ImGuiWindow* window);
IMGUI_API void ClearActiveID(); IMGUI_API void ClearActiveID();
IMGUI_API void SetHoveredID(ImGuiID id); IMGUI_API void SetHoveredID(ImGuiID id);