Nav: rectangle highlight not rendered for items with ImGuiItemFlags_NoNav. (#8057)

Not fully honored in ItemHoverable/IsItemHovered, seems more destructive. This is mostly designed to avoid rectangle being rendered by large InvisibleButton() when ctrl+tabbing back to a window with a big one.
This commit is contained in:
ocornut 2024-10-14 17:37:36 +02:00
parent ad37b79bca
commit 462d167456
2 changed files with 4 additions and 0 deletions

View File

@ -72,6 +72,8 @@ Other changes:
back into same window later. back into same window later.
- Nav: fixed Ctrl+Tab so when starting with no focused window it starts from the top-most - Nav: fixed Ctrl+Tab so when starting with no focused window it starts from the top-most
window. (#3200) window. (#3200)
- Nav: rectangle highlight not rendered for items with ImGuiItemFlags_NoNav. Can be relevant
when e.g activating the item with mouse, then ctrl+tabbing back and forth.
- DrawList: AddCallback() added an optional size parameter allowing to copy and - DrawList: AddCallback() added an optional size parameter allowing to copy and
store any amount of user data for usage by callbacks: (#6969, #4770, #7665) store any amount of user data for usage by callbacks: (#6969, #4770, #7665)
- If userdata_size == 0: we copy/store the 'userdata' argument as-is (existing behavior). - If userdata_size == 0: we copy/store the 'userdata' argument as-is (existing behavior).

View File

@ -3701,6 +3701,8 @@ void ImGui::RenderNavHighlight(const ImRect& bb, ImGuiID id, ImGuiNavHighlightFl
return; return;
if (g.NavDisableHighlight && !(flags & ImGuiNavHighlightFlags_AlwaysDraw)) if (g.NavDisableHighlight && !(flags & ImGuiNavHighlightFlags_AlwaysDraw))
return; return;
if (id == g.LastItemData.ID && (g.LastItemData.InFlags & ImGuiItemFlags_NoNav))
return;
ImGuiWindow* window = g.CurrentWindow; ImGuiWindow* window = g.CurrentWindow;
if (window->DC.NavHideHighlightOneFrame) if (window->DC.NavHideHighlightOneFrame)
return; return;