From 8a2cd810917a3a7f9f54e4cd2e48e10aec2bfd71 Mon Sep 17 00:00:00 2001 From: ocornut Date: Fri, 15 Sep 2023 16:58:06 +0200 Subject: [PATCH] TypingSelect: always enable nav highlight. Otherwise in non multi-select contexts as nav dosn't automatically select result would not always be visible. --- imgui.cpp | 1 - imgui_internal.h | 1 + imgui_widgets.cpp | 3 +-- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/imgui.cpp b/imgui.cpp index 21c49f368..d4f833ba2 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -1075,7 +1075,6 @@ static ImVec2 NavCalcPreferredRefPos(); static void NavSaveLastChildNavWindowIntoParent(ImGuiWindow* nav_window); static ImGuiWindow* NavRestoreLastChildNavWindow(ImGuiWindow* window); static void NavRestoreLayer(ImGuiNavLayer layer); -static void NavRestoreHighlightAfterMove(); static int FindWindowFocusIndex(ImGuiWindow* window); // Error Checking and Debug Tools diff --git a/imgui_internal.h b/imgui_internal.h index 8fcf99d8b..b153cc151 100644 --- a/imgui_internal.h +++ b/imgui_internal.h @@ -3016,6 +3016,7 @@ namespace ImGui IMGUI_API void NavMoveRequestApplyResult(); IMGUI_API void NavMoveRequestTryWrapping(ImGuiWindow* window, ImGuiNavMoveFlags move_flags); IMGUI_API void NavClearPreferredPosForAxis(ImGuiAxis axis); + IMGUI_API void NavRestoreHighlightAfterMove(); IMGUI_API void NavUpdateCurrentWindowIsScrollPushableX(); IMGUI_API void SetNavWindow(ImGuiWindow* window); IMGUI_API void SetNavID(ImGuiID id, ImGuiNavLayer nav_layer, ImGuiID focus_scope_id, const ImRect& rect_rel); diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp index 2b4d51411..b1edf763f 100644 --- a/imgui_widgets.cpp +++ b/imgui_widgets.cpp @@ -6730,14 +6730,13 @@ int ImGui::TypingSelectFindMatch(ImGuiTypingSelectRequest* req, int items_count, { if (req == NULL || req->SelectRequest == false) // Support NULL parameter so both calls can be done from same spot. return -1; - ImGuiContext& g = *GImGui; int idx = -1; if (req->SingleCharMode && (req->Flags & ImGuiTypingSelectFlags_AllowSingleCharMode)) idx = TypingSelectFindNextSingleCharMatch(req, items_count, get_item_name_func, user_data, nav_item_idx); else idx = TypingSelectFindBestLeadingMatch(req, items_count, get_item_name_func, user_data); if (idx != -1) - g.NavDisableMouseHover = true; + NavRestoreHighlightAfterMove(); return idx; }