diff --git a/imgui.cpp b/imgui.cpp index 8cc1eca6..62d4e8f9 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -2665,7 +2665,7 @@ static ImVec2 GetNavInputAmount2d(int stick_no, ImGuiNavReadMode mode, float slo static void ImGui::NavUpdateWindowing() { ImGuiContext& g = *GImGui; - if (!g.NavWindowingTarget && IsNavInputPressed(ImGuiNavInput_PadMenu, ImGuiNavReadMode_Pressed)) + if (!g.NavWindowingTarget && (IsNavInputPressed(ImGuiNavInput_PadMenu, ImGuiNavReadMode_Pressed) || IsNavInputPressed(ImGuiNavInput_KeyMenu, ImGuiNavReadMode_Pressed))) { ImGuiWindow* window = g.NavWindow; if (!window) @@ -2710,7 +2710,7 @@ static void ImGui::NavUpdateWindowing() } } - if (!IsNavInputDown(ImGuiNavInput_PadMenu)) + if (!IsNavInputDown(ImGuiNavInput_PadMenu) && !IsNavInputDown(ImGuiNavInput_KeyMenu)) { // Apply actual focus only when releasing the NavMenu button (until then the window was merely rendered front-most) if (g.NavWindowingTarget && !g.NavWindowingToggleLayer && (!g.NavWindow || g.NavWindowingTarget != g.NavWindow->RootNonPopupWindow)) diff --git a/imgui.h b/imgui.h index bbcac19d..3e2ab628 100644 --- a/imgui.h +++ b/imgui.h @@ -640,6 +640,7 @@ enum ImGuiNavInput_ ImGuiNavInput_PadFocusNext, // prev window (with PadMenu held) // e.g. R-trigger ImGuiNavInput_PadTweakSlow, // slower tweaks // e.g. L-trigger, analog ImGuiNavInput_PadTweakFast, // faster tweaks // e.g. R-trigger, analog + ImGuiNavInput_KeyMenu, // access menu // e.g. ALT ImGuiNavInput_COUNT, };