Skip to content

Commit

Permalink
Docking, Nav: Fixed using gamepad/keyboard navigation not being able …
Browse files Browse the repository at this point in the history
…enter menu layer (#5463, #4792)

Fix 37958ca
  • Loading branch information
ocornut committed Jul 12, 2022
1 parent 21fc57f commit 77637fd
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 3 deletions.
2 changes: 2 additions & 0 deletions docs/CHANGELOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,8 @@ Other Changes:

Docking+Viewports Branch:

- Docking, Nav: Fixed using gamepad/keyboard navigation not being able enter menu layer when
it only contained the standard Collapse/Close buttons and no actual menu. (#5463, #4792)
- Backends: GLFW: Fixed leftover static variable preventing from changing or
reinitializing backend while application is running. (#4616, #5434) [@rtoumazet]

Expand Down
7 changes: 4 additions & 3 deletions imgui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7061,6 +7061,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)

window->DC.NavLayerCurrent = ImGuiNavLayer_Main;
window->DC.NavLayersActiveMask = window->DC.NavLayersActiveMaskNext;
window->DC.NavLayersActiveMaskNext = 0x00;
window->DC.NavHideHighlightOneFrame = false;
window->DC.NavHasScroll = (window->ScrollMax.y > 0.0f);

Expand Down Expand Up @@ -7221,9 +7222,9 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
skip_items = true;
window->SkipItems = skip_items;

// Only clear NavLayersActiveMaskNext when marked as visible, so a CTRL+Tab back can use a safe value.
if (!window->SkipItems)
window->DC.NavLayersActiveMaskNext = 0x00;
// Restore NavLayersActiveMaskNext to previous value when not visible, so a CTRL+Tab back can use a safe value.
if (window->SkipItems)
window->DC.NavLayersActiveMaskNext = window->DC.NavLayersActiveMask;

// Sanity check: there are two spots which can set Appearing = true
// - when 'window_just_activated_by_user' is set -> HiddenFramesCannotSkipItems is set -> SkipItems always false
Expand Down

0 comments on commit 77637fd

Please sign in to comment.