From 3a078466a7afdb4f47964651dbb2c4b2d19e28de Mon Sep 17 00:00:00 2001 From: ocornut Date: Thu, 8 Feb 2024 16:06:55 +0100 Subject: [PATCH] Nav: ImGuiWindowFlags_NoNavInputs is tested during scoring so NavFlattened windows can use it. --- docs/CHANGELOG.txt | 3 ++- imgui.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt index 604e526fa..21fd76539 100644 --- a/docs/CHANGELOG.txt +++ b/docs/CHANGELOG.txt @@ -58,7 +58,8 @@ Other changes: indiviudal left/right alt key without intefering with the other. - Nav, Menus: Fixed click on a BeginMenu() followed by right-arrow from making the child menu reopen and flicker (using ImGuiPopupFlags_NoReopen). -- OpenPopup(): Added ImGuiPopupFlags_NoReopen flag to specifically not close nd reopen a popup +- Nav: ImGuiWindowFlags_NoNavInputs is tested during scoring so NavFlattened windows can use it. +- OpenPopup(): Added ImGuiPopupFlags_NoReopen flag to specifically not close and reopen a popup when it is already open. (#1497, #1533) (Note that this differs from specific handling we already have in place for the case of calling OpenPopup() repeatedly every frame: we already didn't reopen in that specific situation, otherwise diff --git a/imgui.cpp b/imgui.cpp index b0137ff76..39300f9ca 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -11509,7 +11509,7 @@ static void ImGui::NavProcessItem() // Process Move Request (scoring for navigation) // FIXME-NAV: Consider policy for double scoring (scoring from NavScoringRect + scoring from a rect wrapped according to current wrapping policy) - if (g.NavMoveScoringItems && (item_flags & ImGuiItemFlags_Disabled) == 0) + if (g.NavMoveScoringItems && (item_flags & ImGuiItemFlags_Disabled) == 0 && (window->Flags & ImGuiWindowFlags_NoNavInputs) == 0) { const bool is_tabbing = (g.NavMoveFlags & ImGuiNavMoveFlags_IsTabbing) != 0; if (is_tabbing)