@@ -3701,7 +3701,7 @@ void ImGui::RenderNavHighlight(const ImRect& bb, ImGuiID id, ImGuiNavHighlightFl
3701
3701
ImGuiContext& g = *GImGui;
3702
3702
if (id != g.NavId)
3703
3703
return;
3704
- if (g.NavDisableHighlight && !(flags & ImGuiNavHighlightFlags_AlwaysDraw))
3704
+ if (!g.NavCursorVisible && !(flags & ImGuiNavHighlightFlags_AlwaysDraw))
3705
3705
return;
3706
3706
if (id == g.LastItemData.ID && (g.LastItemData.ItemFlags & ImGuiItemFlags_NoNav))
3707
3707
return;
@@ -3910,7 +3910,7 @@ ImGuiContext::ImGuiContext(ImFontAtlas* shared_font_atlas)
3910
3910
NavLastValidSelectionUserData = ImGuiSelectionUserData_Invalid;
3911
3911
NavIdIsAlive = false;
3912
3912
NavMousePosDirty = false;
3913
- NavDisableHighlight = true ;
3913
+ NavCursorVisible = false ;
3914
3914
NavDisableMouseHover = false;
3915
3915
3916
3916
NavAnyRequest = false;
@@ -4444,7 +4444,7 @@ bool ImGui::IsItemHovered(ImGuiHoveredFlags flags)
4444
4444
ImGuiWindow* window = g.CurrentWindow;
4445
4445
IM_ASSERT_USER_ERROR((flags & ~ImGuiHoveredFlags_AllowedMaskForIsItemHovered) == 0, "Invalid flags for IsItemHovered()!");
4446
4446
4447
- if (g.NavDisableMouseHover && !g.NavDisableHighlight && !(flags & ImGuiHoveredFlags_NoNavOverride))
4447
+ if (g.NavDisableMouseHover && g.NavCursorVisible && !(flags & ImGuiHoveredFlags_NoNavOverride))
4448
4448
{
4449
4449
if (!IsItemFocused())
4450
4450
return false;
@@ -4824,7 +4824,7 @@ void ImGui::StartMouseMovingWindow(ImGuiWindow* window)
4824
4824
ImGuiContext& g = *GImGui;
4825
4825
FocusWindow(window);
4826
4826
SetActiveID(window->MoveId, window);
4827
- g.NavDisableHighlight = true ;
4827
+ g.NavCursorVisible = false ;
4828
4828
g.ActiveIdClickOffset = g.IO.MouseClickedPos[0] - window->RootWindow->Pos;
4829
4829
g.ActiveIdNoClearOnFocusLoss = true;
4830
4830
SetActiveIdUsingAllKeyboardKeys();
@@ -5835,7 +5835,7 @@ bool ImGui::IsAnyItemActive()
5835
5835
bool ImGui::IsAnyItemFocused()
5836
5836
{
5837
5837
ImGuiContext& g = *GImGui;
5838
- return g.NavId != 0 && !g.NavDisableHighlight ;
5838
+ return g.NavId != 0 && g.NavCursorVisible ;
5839
5839
}
5840
5840
5841
5841
bool ImGui::IsItemVisible()
@@ -6689,7 +6689,7 @@ void ImGui::RenderWindowDecorations(ImGuiWindow* window, const ImRect& title_bar
6689
6689
// Title bar only
6690
6690
const float backup_border_size = style.FrameBorderSize;
6691
6691
g.Style.FrameBorderSize = window->WindowBorderSize;
6692
- ImU32 title_bar_col = GetColorU32((title_bar_is_highlight && !g.NavDisableHighlight ) ? ImGuiCol_TitleBgActive : ImGuiCol_TitleBgCollapsed);
6692
+ ImU32 title_bar_col = GetColorU32((title_bar_is_highlight && g.NavCursorVisible ) ? ImGuiCol_TitleBgActive : ImGuiCol_TitleBgCollapsed);
6693
6693
RenderFrame(title_bar_rect.Min, title_bar_rect.Max, title_bar_col, true, window_rounding);
6694
6694
g.Style.FrameBorderSize = backup_border_size;
6695
6695
}
@@ -12189,7 +12189,7 @@ ImVec2 ImGui::FindBestWindowPosForPopup(ImGuiWindow* window)
12189
12189
12190
12190
ImVec2 tooltip_pos = ref_pos + TOOLTIP_DEFAULT_OFFSET_MOUSE * scale;
12191
12191
ImRect r_avoid;
12192
- if (!g.NavDisableHighlight && g.NavDisableMouseHover && !g.IO.ConfigNavMoveSetMousePos)
12192
+ if (g.NavCursorVisible && g.NavDisableMouseHover && !g.IO.ConfigNavMoveSetMousePos)
12193
12193
r_avoid = ImRect(ref_pos.x - 16, ref_pos.y - 8, ref_pos.x + 16, ref_pos.y + 8);
12194
12194
else
12195
12195
r_avoid = ImRect(ref_pos.x - 16, ref_pos.y - 8, ref_pos.x + 24 * scale, ref_pos.y + 24 * scale); // FIXME: Hard-coded based on mouse cursor shape expectation. Exact dimension not very important.
@@ -12272,7 +12272,7 @@ void ImGui::SetFocusID(ImGuiID id, ImGuiWindow* window)
12272
12272
if (g.ActiveIdSource == ImGuiInputSource_Keyboard || g.ActiveIdSource == ImGuiInputSource_Gamepad)
12273
12273
g.NavDisableMouseHover = true;
12274
12274
else
12275
- g.NavDisableHighlight = true ;
12275
+ g.NavCursorVisible = false ;
12276
12276
12277
12277
// Clear preferred scoring position (NavMoveRequestApplyResult() will tend to restore it)
12278
12278
NavClearPreferredPosForAxis(ImGuiAxis_X);
@@ -12738,7 +12738,7 @@ void ImGui::NavRestoreLayer(ImGuiNavLayer layer)
12738
12738
void ImGui::NavRestoreHighlightAfterMove()
12739
12739
{
12740
12740
ImGuiContext& g = *GImGui;
12741
- g.NavDisableHighlight = false ;
12741
+ g.NavCursorVisible = true ;
12742
12742
g.NavDisableMouseHover = g.NavMousePosDirty = true;
12743
12743
}
12744
12744
@@ -12789,7 +12789,7 @@ static ImGuiInputSource ImGui::NavCalcPreferredRefPosSource()
12789
12789
const bool activated_shortcut = g.ActiveId != 0 && g.ActiveIdFromShortcut && g.ActiveId == g.LastItemData.ID;
12790
12790
12791
12791
// Testing for !activated_shortcut here could in theory be removed if we decided that activating a remote shortcut altered one of the g.NavDisableXXX flag.
12792
- if ((g.NavDisableHighlight || !g.NavDisableMouseHover || !window) && !activated_shortcut)
12792
+ if ((!g.NavCursorVisible || !g.NavDisableMouseHover || !window) && !activated_shortcut)
12793
12793
return ImGuiInputSource_Mouse;
12794
12794
else
12795
12795
return ImGuiInputSource_Keyboard; // or Nav in general
@@ -12897,7 +12897,7 @@ static void ImGui::NavUpdate()
12897
12897
// Schedule mouse position update (will be done at the bottom of this function, after 1) processing all move requests and 2) updating scrolling)
12898
12898
bool set_mouse_pos = false;
12899
12899
if (g.NavMousePosDirty && g.NavIdIsAlive)
12900
- if (!g.NavDisableHighlight && g.NavDisableMouseHover && g.NavWindow)
12900
+ if (g.NavCursorVisible && g.NavDisableMouseHover && g.NavWindow)
12901
12901
set_mouse_pos = true;
12902
12902
g.NavMousePosDirty = false;
12903
12903
IM_ASSERT(g.NavLayer == ImGuiNavLayer_Main || g.NavLayer == ImGuiNavLayer_Menu);
@@ -12913,15 +12913,15 @@ static void ImGui::NavUpdate()
12913
12913
12914
12914
// Set output flags for user application
12915
12915
io.NavActive = (nav_keyboard_active || nav_gamepad_active) && g.NavWindow && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs);
12916
- io.NavVisible = (io.NavActive && g.NavId != 0 && !g.NavDisableHighlight ) || (g.NavWindowingTarget != NULL);
12916
+ io.NavVisible = (io.NavActive && g.NavId != 0 && g.NavCursorVisible ) || (g.NavWindowingTarget != NULL);
12917
12917
12918
12918
// Process NavCancel input (to close a popup, get back to parent, clear focus)
12919
12919
NavUpdateCancelRequest();
12920
12920
12921
12921
// Process manual activation request
12922
12922
g.NavActivateId = g.NavActivateDownId = g.NavActivatePressedId = 0;
12923
12923
g.NavActivateFlags = ImGuiActivateFlags_None;
12924
- if (g.NavId != 0 && !g.NavDisableHighlight && !g.NavWindowingTarget && g.NavWindow && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs))
12924
+ if (g.NavId != 0 && g.NavCursorVisible && !g.NavWindowingTarget && g.NavWindow && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs))
12925
12925
{
12926
12926
const bool activate_down = (nav_keyboard_active && IsKeyDown(ImGuiKey_Space, ImGuiKeyOwner_NoOwner)) || (nav_gamepad_active && IsKeyDown(ImGuiKey_NavGamepadActivate, ImGuiKeyOwner_NoOwner));
12927
12927
const bool activate_pressed = activate_down && ((nav_keyboard_active && IsKeyPressed(ImGuiKey_Space, 0, ImGuiKeyOwner_NoOwner)) || (nav_gamepad_active && IsKeyPressed(ImGuiKey_NavGamepadActivate, 0, ImGuiKeyOwner_NoOwner)));
@@ -12946,7 +12946,7 @@ static void ImGui::NavUpdate()
12946
12946
}
12947
12947
}
12948
12948
if (g.NavWindow && (g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs))
12949
- g.NavDisableHighlight = true ;
12949
+ g.NavCursorVisible = false ;
12950
12950
if (g.NavActivateId != 0)
12951
12951
IM_ASSERT(g.NavActivateDownId == g.NavActivateId);
12952
12952
@@ -13003,7 +13003,7 @@ static void ImGui::NavUpdate()
13003
13003
// Always prioritize mouse highlight if navigation is disabled
13004
13004
if (!nav_keyboard_active && !nav_gamepad_active)
13005
13005
{
13006
- g.NavDisableHighlight = true ;
13006
+ g.NavCursorVisible = false ;
13007
13007
g.NavDisableMouseHover = set_mouse_pos = false;
13008
13008
}
13009
13009
@@ -13147,7 +13147,7 @@ void ImGui::NavUpdateCreateMoveRequest()
13147
13147
IMGUI_DEBUG_LOG_NAV("[nav] NavInitRequest: from move, window \"%s\", layer=%d\n", window ? window->Name : "<NULL>", g.NavLayer);
13148
13148
g.NavInitRequest = g.NavInitRequestFromMove = true;
13149
13149
g.NavInitResult.ID = 0;
13150
- g.NavDisableHighlight = false ;
13150
+ g.NavCursorVisible = true ;
13151
13151
}
13152
13152
13153
13153
// When using gamepad, we project the reference nav bounding box into window visible area.
@@ -13211,7 +13211,7 @@ void ImGui::NavUpdateCreateTabbingRequest()
13211
13211
// See NavProcessItemForTabbingRequest() for a description of the various forward/backward tabbing cases with and without wrapping.
13212
13212
const bool nav_keyboard_active = (g.IO.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard) != 0;
13213
13213
if (nav_keyboard_active)
13214
- g.NavTabbingDir = g.IO.KeyShift ? -1 : (g.NavDisableHighlight == true && g.ActiveId == 0) ? 0 : +1;
13214
+ g.NavTabbingDir = g.IO.KeyShift ? -1 : (g.NavCursorVisible == false && g.ActiveId == 0) ? 0 : +1;
13215
13215
else
13216
13216
g.NavTabbingDir = g.IO.KeyShift ? -1 : (g.ActiveId == 0) ? 0 : +1;
13217
13217
ImGuiNavMoveFlags move_flags = ImGuiNavMoveFlags_IsTabbing | ImGuiNavMoveFlags_Activate;
@@ -15823,7 +15823,7 @@ void ImGui::ShowMetricsWindow(bool* p_open)
15823
15823
Text("NavActive: %d, NavVisible: %d", g.IO.NavActive, g.IO.NavVisible);
15824
15824
Text("NavActivateId/DownId/PressedId: %08X/%08X/%08X", g.NavActivateId, g.NavActivateDownId, g.NavActivatePressedId);
15825
15825
Text("NavActivateFlags: %04X", g.NavActivateFlags);
15826
- Text("NavDisableHighlight : %d, NavDisableMouseHover: %d", g.NavDisableHighlight , g.NavDisableMouseHover);
15826
+ Text("NavCursorVisible : %d, NavDisableMouseHover: %d", g.NavCursorVisible , g.NavDisableMouseHover);
15827
15827
Text("NavFocusScopeId = 0x%08X", g.NavFocusScopeId);
15828
15828
Text("NavFocusRoute[] = ");
15829
15829
for (int path_n = g.NavFocusRoute.Size - 1; path_n >= 0; path_n--)
0 commit comments