MenuItem, Selectable: Fixed disabled widget interfering with navigation (fix c2db7f63 in 1.67).
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index 1148577..4f1faee 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -60,6 +60,7 @@
when manipulating the scrollbar of a multi-line input text.
- ColorPicker: Fixed a bug/assertion when displaying a color picker in a collapsed window
while dragging its title bar. (#2389)
+- MenuItem, Selectable: Fixed disabled widget interfering with navigation (fix c2db7f63 in 1.67).
- TabBar: Fixed a crash when using BeginTabBar() recursively (didn't affect docking). (#2371)
- TabBar: Added extra mis-usage error recovery. Past the assert, common mis-usage don't lead to
hard crashes any more, facilitating integration with scripting languages. (#1651)
diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp
index ea0914e..718d476 100644
--- a/imgui_widgets.cpp
+++ b/imgui_widgets.cpp
@@ -5179,7 +5179,20 @@
bb.Min.y -= spacing_U;
bb.Max.x += spacing_R;
bb.Max.y += spacing_D;
- if (!ItemAdd(bb, id))
+
+ bool item_add;
+ if (flags & ImGuiSelectableFlags_Disabled)
+ {
+ ImGuiItemFlags backup_item_flags = window->DC.ItemFlags;
+ window->DC.ItemFlags |= ImGuiItemFlags_NoNav | ImGuiItemFlags_NoNavDefaultFocus;
+ item_add = ItemAdd(bb, id);
+ window->DC.ItemFlags = backup_item_flags;
+ }
+ else
+ {
+ item_add = ItemAdd(bb, id);
+ }
+ if (!item_add)
{
if ((flags & ImGuiSelectableFlags_SpanAllColumns) && window->DC.ColumnsSet)
PushColumnClipRect();