浏览代码

TreeNodeV() early out if SkipItems is set (avoid formatting string only to be discarded later)

ocornut 10 年之前
父节点
当前提交
d08ce58876
共有 1 个文件被更改,包括 9 次插入0 次删除
  1. 9 0
      imgui.cpp

+ 9 - 0
imgui.cpp

@@ -3992,6 +3992,7 @@ void ImGui::LabelTextV(const char* label, const char* fmt, va_list args)
     ImGuiWindow* window = GetCurrentWindow();
     ImGuiWindow* window = GetCurrentWindow();
     if (window->SkipItems)
     if (window->SkipItems)
         return;
         return;
+
     const ImGuiStyle& style = g.Style;
     const ImGuiStyle& style = g.Style;
     const float w = ImGui::CalcItemWidth();
     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
 // 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)
 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];
     static char buf[1024];
     ImFormatStringV(buf, IM_ARRAYSIZE(buf), fmt, args);
     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
 // 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)
 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];
     static char buf[1024];
     ImFormatStringV(buf, IM_ARRAYSIZE(buf), fmt, args);
     ImFormatStringV(buf, IM_ARRAYSIZE(buf), fmt, args);