Nav: ImGuiWindowFlags_NoNavInputs is tested during scoring so NavFlattened windows can use it.

This commit is contained in:
ocornut 2024-02-08 16:06:55 +01:00
parent 7d67623d15
commit 3a078466a7
2 changed files with 3 additions and 2 deletions

View File

@ -58,7 +58,8 @@ Other changes:
indiviudal left/right alt key without intefering with the other. 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 - Nav, Menus: Fixed click on a BeginMenu() followed by right-arrow from making the child menu
reopen and flicker (using ImGuiPopupFlags_NoReopen). 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) when it is already open. (#1497, #1533)
(Note that this differs from specific handling we already have in place for the case of calling (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 OpenPopup() repeatedly every frame: we already didn't reopen in that specific situation, otherwise

View File

@ -11509,7 +11509,7 @@ static void ImGui::NavProcessItem()
// Process Move Request (scoring for navigation) // 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) // 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; const bool is_tabbing = (g.NavMoveFlags & ImGuiNavMoveFlags_IsTabbing) != 0;
if (is_tabbing) if (is_tabbing)