Selectable() should have an ID even though they are disabled, to be consistent with other widgets. Not sure of the reasoning ~1.41 which made this turn to 0.
diff --git a/imgui_internal.h b/imgui_internal.h
index 213ef3d..7429c34 100644
--- a/imgui_internal.h
+++ b/imgui_internal.h
@@ -331,8 +331,8 @@
// FIXME: this is in development, not exposed/functional as a generic feature yet.
enum ImGuiLayoutType_
{
- ImGuiLayoutType_Vertical,
- ImGuiLayoutType_Horizontal
+ ImGuiLayoutType_Vertical = 0,
+ ImGuiLayoutType_Horizontal = 1,
};
enum ImGuiAxis
diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp
index bdf4991..dd1c2eb 100644
--- a/imgui_widgets.cpp
+++ b/imgui_widgets.cpp
@@ -282,10 +282,12 @@
void ImGui::TextWrappedV(const char* fmt, va_list args)
{
- bool need_wrap = (GImGui->CurrentWindow->DC.TextWrapPos < 0.0f); // Keep existing wrap position is one ia already set
- if (need_wrap) PushTextWrapPos(0.0f);
+ bool need_backup = (GImGui->CurrentWindow->DC.TextWrapPos < 0.0f); // Keep existing wrap position if one is already set
+ if (need_backup)
+ PushTextWrapPos(0.0f);
TextV(fmt, args);
- if (need_wrap) PopTextWrapPos();
+ if (need_backup)
+ PopTextWrapPos();
}
void ImGui::LabelText(const char* label, const char* fmt, ...)
@@ -5030,7 +5032,7 @@
bb.Min.y -= spacing_U;
bb.Max.x += spacing_R;
bb.Max.y += spacing_D;
- if (!ItemAdd(bb, (flags & ImGuiSelectableFlags_Disabled) ? 0 : id))
+ if (!ItemAdd(bb, id))
{
if ((flags & ImGuiSelectableFlags_SpanAllColumns) && window->DC.ColumnsSet)
PushColumnClipRect();