Просмотр исходного кода

Fixed SetKeyboardFocusHere() not working when current nav focus is in different scope. (#7226)

Amend 70f2aaff
ocornut 1 год назад
Родитель
Сommit
dd0efdc637
2 измененных файлов с 6 добавлено и 2 удалено
  1. 2 0
      docs/CHANGELOG.txt
  2. 4 2
      imgui.cpp

+ 2 - 0
docs/CHANGELOG.txt

@@ -46,6 +46,8 @@ Breaking changes:
 
 Other changes:
 
+- Fixed SetKeyboardFocusHere() not working when current nav focus is in different scope,
+  regression from 1.90.1 related to code scoping Tab presses to local scope. (#7226) [@bratpilz]
 - Backends: Vulkan: Fixed vkMapMemory() calls unnecessarily using full buffer size. (#3957)
 - Backends: Vulkan: Fixed handling of ImGui_ImplVulkan_InitInfo::MinAllocationSize field. (#7189, #4238)
 

+ 4 - 2
imgui.cpp

@@ -11383,10 +11383,12 @@ void ImGui::NavProcessItemForTabbingRequest(ImGuiID id, ImGuiItemFlags item_flag
     ImGuiContext& g = *GImGui;
 
     if ((move_flags & ImGuiNavMoveFlags_FocusApi) == 0)
+    {
         if (g.NavLayer != g.CurrentWindow->DC.NavLayerCurrent)
             return;
-    if (g.NavFocusScopeId != g.CurrentFocusScopeId)
-        return;
+        if (g.NavFocusScopeId != g.CurrentFocusScopeId)
+            return;
+    }
 
     // - Can always land on an item when using API call.
     // - Tabbing with _NavEnableKeyboard (space/enter/arrows): goes through every item.