From d08ce58876740e19c121739363f7ac9df9a577ec Mon Sep 17 00:00:00 2001 From: ocornut Date: Mon, 16 Mar 2015 00:46:03 +0000 Subject: [PATCH] TreeNodeV() early out if SkipItems is set (avoid formatting string only to be discarded later) --- imgui.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/imgui.cpp b/imgui.cpp index e8033cb4..02635a45 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -3992,6 +3992,7 @@ void ImGui::LabelTextV(const char* label, const char* fmt, va_list args) ImGuiWindow* window = GetCurrentWindow(); if (window->SkipItems) return; + const ImGuiStyle& style = g.Style; const float w = ImGui::CalcItemWidth(); @@ -4536,6 +4537,10 @@ void ImGui::BulletText(const char* fmt, ...) // If returning 'true' the node is open and the user is responsible for calling TreePop bool ImGui::TreeNodeV(const char* str_id, const char* fmt, va_list args) { + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + static char buf[1024]; ImFormatStringV(buf, IM_ARRAYSIZE(buf), fmt, args); @@ -4564,6 +4569,10 @@ bool ImGui::TreeNode(const char* str_id, const char* fmt, ...) // If returning 'true' the node is open and the user is responsible for calling TreePop bool ImGui::TreeNodeV(const void* ptr_id, const char* fmt, va_list args) { + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + static char buf[1024]; ImFormatStringV(buf, IM_ARRAYSIZE(buf), fmt, args);