mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	Debug Tools: Added 'io.ConfigDebugIniSettings' option to save .ini data with extra comments.
Moved from compile-time to runtime flag. Note: commit in master is not particularly useful. Docking version will add stuff.
This commit is contained in:
		@@ -38,6 +38,8 @@ Other changes:
 | 
			
		||||
 | 
			
		||||
- Tables: Fixed a regression in 1.89.6 leading to the first column of tables with either
 | 
			
		||||
  ScrollX or ScrollY flags from being impossible to resize. (#6503)
 | 
			
		||||
- Debug Tools: Added 'io.ConfigDebugIniSettings' option to save .ini data with extra
 | 
			
		||||
  comments. Currently mainly for inspecting Docking .ini data, but makes saving slower.
 | 
			
		||||
- Backends: OpenGL3: Fixed support for glBindSampler() backup/restore on ES3. (#6375, #6508) [@jsm174]
 | 
			
		||||
- Backends: GLFW: Accept glfwGetTime() not returning a monotonically increasing value.
 | 
			
		||||
  This seems to happens on some Windows setup when peripherals disconnect, and is likely
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								imgui.cpp
									
									
									
									
									
								
							@@ -983,7 +983,6 @@ CODE
 | 
			
		||||
// Debug options
 | 
			
		||||
#define IMGUI_DEBUG_NAV_SCORING     0   // Display navigation scoring preview when hovering items. Display last moving direction matches when holding CTRL
 | 
			
		||||
#define IMGUI_DEBUG_NAV_RECTS       0   // Display the reference navigation rectangle for each window
 | 
			
		||||
#define IMGUI_DEBUG_INI_SETTINGS    0   // Save additional comments in .ini file (particularly helps for Docking, but makes saving slower)
 | 
			
		||||
 | 
			
		||||
// When using CTRL+TAB (or Gamepad Square+L/R) we delay the visual a little in order to reduce visual noise doing a fast switch.
 | 
			
		||||
static const float NAV_WINDOWING_HIGHLIGHT_DELAY            = 0.20f;    // Time before the highlight and screen dimming starts fading in
 | 
			
		||||
@@ -12947,12 +12946,13 @@ ImGuiWindowSettings* ImGui::CreateNewWindowSettings(const char* name)
 | 
			
		||||
{
 | 
			
		||||
    ImGuiContext& g = *GImGui;
 | 
			
		||||
 | 
			
		||||
#if !IMGUI_DEBUG_INI_SETTINGS
 | 
			
		||||
    // Skip to the "###" marker if any. We don't skip past to match the behavior of GetID()
 | 
			
		||||
    // Preserve the full string when IMGUI_DEBUG_INI_SETTINGS is set to make .ini inspection easier.
 | 
			
		||||
    if (const char* p = strstr(name, "###"))
 | 
			
		||||
        name = p;
 | 
			
		||||
#endif
 | 
			
		||||
    if (g.IO.ConfigDebugIniSettings == false)
 | 
			
		||||
    {
 | 
			
		||||
        // Skip to the "###" marker if any. We don't skip past to match the behavior of GetID()
 | 
			
		||||
        // Preserve the full string when ConfigDebugVerboseIniSettings is set to make .ini inspection easier.
 | 
			
		||||
        if (const char* p = strstr(name, "###"))
 | 
			
		||||
            name = p;
 | 
			
		||||
    }
 | 
			
		||||
    const size_t name_len = strlen(name);
 | 
			
		||||
 | 
			
		||||
    // Allocate chunk
 | 
			
		||||
@@ -13813,11 +13813,12 @@ void ImGui::ShowMetricsWindow(bool* p_open)
 | 
			
		||||
            Text("\"%s\"", g.IO.IniFilename);
 | 
			
		||||
        else
 | 
			
		||||
            TextUnformatted("<NULL>");
 | 
			
		||||
        Checkbox("io.ConfigDebugIniSettings", &io.ConfigDebugIniSettings);
 | 
			
		||||
        Text("SettingsDirtyTimer %.2f", g.SettingsDirtyTimer);
 | 
			
		||||
        if (TreeNode("SettingsHandlers", "Settings handlers: (%d)", g.SettingsHandlers.Size))
 | 
			
		||||
        {
 | 
			
		||||
            for (int n = 0; n < g.SettingsHandlers.Size; n++)
 | 
			
		||||
                BulletText("%s", g.SettingsHandlers[n].TypeName);
 | 
			
		||||
                BulletText("\"%s\"", g.SettingsHandlers[n].TypeName);
 | 
			
		||||
            TreePop();
 | 
			
		||||
        }
 | 
			
		||||
        if (TreeNode("SettingsWindows", "Settings packed data: Windows: %d bytes", g.SettingsWindows.size()))
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								imgui.h
									
									
									
									
									
								
							@@ -1961,6 +1961,8 @@ struct ImGuiIO
 | 
			
		||||
    // - backends may have other side-effects on focus loss, so this will reduce side-effects but not necessary remove all of them.
 | 
			
		||||
    // - consider using e.g. Win32's IsDebuggerPresent() as an additional filter (or see ImOsIsDebuggerPresent() in imgui_test_engine/imgui_te_utils.cpp for a Unix compatible version).
 | 
			
		||||
    bool        ConfigDebugIgnoreFocusLoss;     // = false          // Ignore io.AddFocusEvent(false), consequently not calling io.ClearInputKeys() in input processing.
 | 
			
		||||
    // - tools to audit ini data
 | 
			
		||||
    bool        ConfigDebugIniSettings;         // = false          // Save .ini data with extra comments (particularly helpful for Docking, but makes saving slower)
 | 
			
		||||
 | 
			
		||||
    //------------------------------------------------------------------
 | 
			
		||||
    // Platform Functions
 | 
			
		||||
 
 | 
			
		||||
@@ -471,6 +471,8 @@ void ImGui::ShowDemoWindow(bool* p_open)
 | 
			
		||||
            ImGui::SameLine(); HelpMarker("Some calls to Begin()/BeginChild() will return false.\n\nWill cycle through window depths then repeat. Windows should be flickering while running.");
 | 
			
		||||
            ImGui::Checkbox("io.ConfigDebugIgnoreFocusLoss", &io.ConfigDebugIgnoreFocusLoss);
 | 
			
		||||
            ImGui::SameLine(); HelpMarker("Option to deactivate io.AddFocusEvent(false) handling. May facilitate interactions with a debugger when focus loss leads to clearing inputs data.");
 | 
			
		||||
            ImGui::Checkbox("io.ConfigDebugIniSettings", &io.ConfigDebugIniSettings);
 | 
			
		||||
            ImGui::SameLine(); HelpMarker("Option to save .ini data with extra comments (particularly helpful for Docking, but makes saving slower).");
 | 
			
		||||
 | 
			
		||||
            ImGui::TreePop();
 | 
			
		||||
            ImGui::Spacing();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user