MultiSelect: mark parent child window as navigable into, with highlight. Assume user will always submit interactive items.
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index 58ceb68..12f873b 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -3211,6 +3211,7 @@
ImGui::BulletText("Shift+Click to check multiple boxes.");
ImGui::BulletText("Shift+Keyboard to copy current value to other boxes.");
+ // If you have an array of checkboxes, you may want to use NoAutoSelect + NoAutoClear and the ImGuiSelectionExternalStorage helper.
static bool values[20] = {};
static ImGuiMultiSelectFlags flags = ImGuiMultiSelectFlags_NoAutoSelect | ImGuiMultiSelectFlags_NoAutoClear | ImGuiMultiSelectFlags_ClearOnEscape;
ImGui::CheckboxFlags("ImGuiMultiSelectFlags_NoAutoSelect", &flags, ImGuiMultiSelectFlags_NoAutoSelect);
diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp
index bd25e1a..b60e73a 100644
--- a/imgui_widgets.cpp
+++ b/imgui_widgets.cpp
@@ -7329,6 +7329,8 @@
ms->BackupCursorMaxPos = window->DC.CursorMaxPos;
ms->ScopeRectMin = window->DC.CursorMaxPos = window->DC.CursorPos;
PushFocusScope(ms->FocusScopeId);
+ if (flags & ImGuiMultiSelectFlags_ScopeWindow) // Mark parent child window as navigable into, with highlight. Assume user will always submit interactive items.
+ window->DC.NavLayersActiveMask |= 1 << ImGuiNavLayer_Main;
// Use copy of keyboard mods at the time of the request, otherwise we would requires mods to be held for an extra frame.
ms->KeyMods = g.NavJustMovedToId ? g.NavJustMovedToKeyMods : g.IO.KeyMods;