|
@@ -10138,12 +10138,8 @@ float ImGui::GetNavInputAmount(ImGuiNavInput n, ImGuiNavReadMode mode)
|
|
return io.NavInputs[n];
|
|
return io.NavInputs[n];
|
|
|
|
|
|
const float t = io.NavInputsDownDuration[n];
|
|
const float t = io.NavInputsDownDuration[n];
|
|
- if (t < 0.0f && mode == ImGuiNavReadMode_Released) // Return 1.0f when just released, no repeat, ignore analog input.
|
|
|
|
- return (io.NavInputsDownDurationPrev[n] >= 0.0f ? 1.0f : 0.0f);
|
|
|
|
if (t < 0.0f)
|
|
if (t < 0.0f)
|
|
return 0.0f;
|
|
return 0.0f;
|
|
- if (mode == ImGuiNavReadMode_Pressed) // Return 1.0f when just pressed, no repeat, ignore analog input.
|
|
|
|
- return (t == 0.0f) ? 1.0f : 0.0f;
|
|
|
|
if (mode == ImGuiNavReadMode_Repeat)
|
|
if (mode == ImGuiNavReadMode_Repeat)
|
|
return (float)CalcTypematicRepeatAmount(t - io.DeltaTime, t, io.KeyRepeatDelay * 0.72f, io.KeyRepeatRate * 0.80f);
|
|
return (float)CalcTypematicRepeatAmount(t - io.DeltaTime, t, io.KeyRepeatDelay * 0.72f, io.KeyRepeatRate * 0.80f);
|
|
if (mode == ImGuiNavReadMode_RepeatSlow)
|
|
if (mode == ImGuiNavReadMode_RepeatSlow)
|
|
@@ -10271,8 +10267,8 @@ static void ImGui::NavUpdate()
|
|
{
|
|
{
|
|
bool activate_down = IsNavInputDown(ImGuiNavInput_Activate);
|
|
bool activate_down = IsNavInputDown(ImGuiNavInput_Activate);
|
|
bool input_down = IsNavInputDown(ImGuiNavInput_Input);
|
|
bool input_down = IsNavInputDown(ImGuiNavInput_Input);
|
|
- bool activate_pressed = activate_down && IsNavInputTest(ImGuiNavInput_Activate, ImGuiNavReadMode_Pressed);
|
|
|
|
- bool input_pressed = input_down && IsNavInputTest(ImGuiNavInput_Input, ImGuiNavReadMode_Pressed);
|
|
|
|
|
|
+ bool activate_pressed = activate_down && IsNavInputPressed(ImGuiNavInput_Activate);
|
|
|
|
+ bool input_pressed = input_down && IsNavInputPressed(ImGuiNavInput_Input);
|
|
if (g.ActiveId == 0 && activate_pressed)
|
|
if (g.ActiveId == 0 && activate_pressed)
|
|
{
|
|
{
|
|
g.NavActivateId = g.NavId;
|
|
g.NavActivateId = g.NavId;
|
|
@@ -10612,7 +10608,7 @@ void ImGui::NavMoveRequestApplyResult()
|
|
static void ImGui::NavUpdateCancelRequest()
|
|
static void ImGui::NavUpdateCancelRequest()
|
|
{
|
|
{
|
|
ImGuiContext& g = *GImGui;
|
|
ImGuiContext& g = *GImGui;
|
|
- if (!IsNavInputTest(ImGuiNavInput_Cancel, ImGuiNavReadMode_Pressed))
|
|
|
|
|
|
+ if (!IsNavInputPressed(ImGuiNavInput_Cancel))
|
|
return;
|
|
return;
|
|
|
|
|
|
IMGUI_DEBUG_LOG_NAV("[nav] ImGuiNavInput_Cancel\n");
|
|
IMGUI_DEBUG_LOG_NAV("[nav] ImGuiNavInput_Cancel\n");
|
|
@@ -10864,12 +10860,12 @@ static void ImGui::NavUpdateWindowing()
|
|
}
|
|
}
|
|
|
|
|
|
// Start CTRL+Tab or Square+L/R window selection
|
|
// Start CTRL+Tab or Square+L/R window selection
|
|
- const bool start_windowing_with_gamepad = allow_windowing && !g.NavWindowingTarget && IsNavInputTest(ImGuiNavInput_Menu, ImGuiNavReadMode_Pressed);
|
|
|
|
|
|
+ const bool start_windowing_with_gamepad = allow_windowing && !g.NavWindowingTarget && IsNavInputPressed(ImGuiNavInput_Menu);
|
|
const bool start_windowing_with_keyboard = allow_windowing && !g.NavWindowingTarget && io.KeyCtrl && IsKeyPressed(ImGuiKey_Tab);
|
|
const bool start_windowing_with_keyboard = allow_windowing && !g.NavWindowingTarget && io.KeyCtrl && IsKeyPressed(ImGuiKey_Tab);
|
|
if (start_windowing_with_gamepad || start_windowing_with_keyboard)
|
|
if (start_windowing_with_gamepad || start_windowing_with_keyboard)
|
|
if (ImGuiWindow* window = g.NavWindow ? g.NavWindow : FindWindowNavFocusable(g.WindowsFocusOrder.Size - 1, -INT_MAX, -1))
|
|
if (ImGuiWindow* window = g.NavWindow ? g.NavWindow : FindWindowNavFocusable(g.WindowsFocusOrder.Size - 1, -INT_MAX, -1))
|
|
{
|
|
{
|
|
- g.NavWindowingTarget = g.NavWindowingTargetAnim = window;
|
|
|
|
|
|
+ g.NavWindowingTarget = g.NavWindowingTargetAnim = window->RootWindow;
|
|
g.NavWindowingTimer = g.NavWindowingHighlightAlpha = 0.0f;
|
|
g.NavWindowingTimer = g.NavWindowingHighlightAlpha = 0.0f;
|
|
g.NavWindowingAccumDeltaPos = g.NavWindowingAccumDeltaSize = ImVec2(0.0f, 0.0f);
|
|
g.NavWindowingAccumDeltaPos = g.NavWindowingAccumDeltaSize = ImVec2(0.0f, 0.0f);
|
|
g.NavWindowingToggleLayer = start_windowing_with_gamepad ? true : false; // Gamepad starts toggling layer
|
|
g.NavWindowingToggleLayer = start_windowing_with_gamepad ? true : false; // Gamepad starts toggling layer
|