From fcf67396cd7a28c93da49b99e19b7dcd03b7fc49 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Mon, 22 Sep 2025 16:17:57 +1000 Subject: [PATCH] Qt: Require non-zero displacement for reverse axis binding Should hopefully work around controllers with digital triggers getting flagged as inverted bindings. --- src/core/fullscreen_ui.cpp | 4 ++-- src/duckstation-qt/inputbindingdialog.cpp | 4 ++-- src/duckstation-qt/inputbindingwidgets.cpp | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/core/fullscreen_ui.cpp b/src/core/fullscreen_ui.cpp index 71fe23dbc..d0b575ccb 100644 --- a/src/core/fullscreen_ui.cpp +++ b/src/core/fullscreen_ui.cpp @@ -2571,8 +2571,8 @@ void FullscreenUI::InputBindingDialog::Start(SettingsInterface* bsi, InputBindin } const float abs_value = std::abs(value); - const bool reverse_threshold = - (key.source_subtype == InputSubclass::ControllerAxis && std::abs(initial_value) > 0.5f); + const bool reverse_threshold = (key.source_subtype == InputSubclass::ControllerAxis && + std::abs(initial_value) > 0.5f && std::abs(initial_value - min_value) > 0.1f); for (InputBindingKey& other_key : m_new_bindings) { diff --git a/src/duckstation-qt/inputbindingdialog.cpp b/src/duckstation-qt/inputbindingdialog.cpp index a25649706..975ea62a0 100644 --- a/src/duckstation-qt/inputbindingdialog.cpp +++ b/src/duckstation-qt/inputbindingdialog.cpp @@ -324,8 +324,8 @@ void InputBindingDialog::inputManagerHookCallback(InputBindingKey key, float val logInputEvent(m_bind_type, key, value, initial_value, min_value); const float abs_value = std::abs(value); - const bool reverse_threshold = - (key.source_subtype == InputSubclass::ControllerAxis && std::abs(initial_value) > 0.5f); + const bool reverse_threshold = (key.source_subtype == InputSubclass::ControllerAxis && + std::abs(initial_value) > 0.5f && std::abs(initial_value - min_value) > 0.1f); for (InputBindingKey& other_key : m_new_bindings) { diff --git a/src/duckstation-qt/inputbindingwidgets.cpp b/src/duckstation-qt/inputbindingwidgets.cpp index 925412181..9b7d35cb0 100644 --- a/src/duckstation-qt/inputbindingwidgets.cpp +++ b/src/duckstation-qt/inputbindingwidgets.cpp @@ -353,8 +353,8 @@ void InputBindingWidget::inputManagerHookCallback(InputBindingKey key, float val InputBindingDialog::logInputEvent(m_bind_type, key, value, initial_value, min_value); const float abs_value = std::abs(value); - const bool reverse_threshold = - (key.source_subtype == InputSubclass::ControllerAxis && std::abs(initial_value) > 0.5f); + const bool reverse_threshold = (key.source_subtype == InputSubclass::ControllerAxis && + std::abs(initial_value) > 0.5f && std::abs(initial_value - min_value) > 0.1f); for (InputBindingKey& other_key : m_new_bindings) {