From 5fa81f2a26636d5fb238aa0bd57c2d7ea9d205bf Mon Sep 17 00:00:00 2001 From: omar Date: Fri, 20 Oct 2017 22:12:10 +0200 Subject: [PATCH] Nav: Added ImGuiNavInput_KeyMenu aside from ImGuiNavInput_PadMenu as it is one differenciator between pad and keyboard that's very annoying with the keyboard. Remove the move/resize behavior that appears than holding the button for a while. (#787) --- imgui.cpp | 4 ++-- imgui.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/imgui.cpp b/imgui.cpp index 8cc1eca62..62d4e8f9e 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 bbcac19d2..3e2ab628b 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, };