Nav: Fixed inability to cancel nav in modal popups. (#5400)
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index 8f540be..f6674d8 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -87,6 +87,7 @@
- Nav: Fixed issues with nav request being transferred to another window when calling SetKeyboardFocusHere()
and simultaneous changing window focus. (#4449)
- Nav: Changed SetKeyboardFocusHere() to not behave if a drag or window moving is in progress.
+- Nav: Fixed inability to cancel nav in modal popups. (#5400) [@rokups]
- IsItemHovered(): added ImGuiHoveredFlags_NoNavOverride to disable the behavior where the
return value is overriden by focus when gamepad/keyboard navigation is active.
- InputText: Fixed pressing Tab emitting two tabs characters because of dual Keys/Chars events being
diff --git a/imgui.cpp b/imgui.cpp
index 916b9c6..ceb589d 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -10630,11 +10630,10 @@
SetNavID(child_window->ChildId, ImGuiNavLayer_Main, 0, WindowRectAbsToRel(parent_window, child_rect));
NavRestoreHighlightAfterMove();
}
- else if (g.OpenPopupStack.Size > 0)
+ else if (g.OpenPopupStack.Size > 0 && !(g.OpenPopupStack.back().Window->Flags & ImGuiWindowFlags_Modal))
{
// Close open popup/menu
- if (!(g.OpenPopupStack.back().Window->Flags & ImGuiWindowFlags_Modal))
- ClosePopupToLevel(g.OpenPopupStack.Size - 1, true);
+ ClosePopupToLevel(g.OpenPopupStack.Size - 1, true);
}
else
{
diff --git a/imgui.h b/imgui.h
index 0041170..0265f83 100644
--- a/imgui.h
+++ b/imgui.h
@@ -65,7 +65,7 @@
// Version
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens)
#define IMGUI_VERSION "1.88 WIP"
-#define IMGUI_VERSION_NUM 18730
+#define IMGUI_VERSION_NUM 18731
#define IMGUI_CHECKVERSION() ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx))
#define IMGUI_HAS_TABLE