diff options
author | bunnei <bunneidev@gmail.com> | 2021-06-04 00:40:04 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-04 00:40:04 -0700 |
commit | c8b3d928368b12dba3bf0f4221f7013e464540dd (patch) | |
tree | 7b1c952c994c35ba70f6df2c0764e26b7e0cc3ec /src/yuzu/configuration/configure_input_player_widget.cpp | |
parent | 1d1f6160634e1390c5cadcb0a8575e6bfaaa6b89 (diff) | |
parent | ac48e059bc3b00b83ba02a527869f105d4a6bfef (diff) |
Merge pull request #6392 from german77/controller-widget
settings: Disable controller preview if controller is not active
Diffstat (limited to 'src/yuzu/configuration/configure_input_player_widget.cpp')
-rw-r--r-- | src/yuzu/configuration/configure_input_player_widget.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/yuzu/configuration/configure_input_player_widget.cpp b/src/yuzu/configuration/configure_input_player_widget.cpp index 61ba91cef..f50cda2f3 100644 --- a/src/yuzu/configuration/configure_input_player_widget.cpp +++ b/src/yuzu/configuration/configure_input_player_widget.cpp @@ -85,6 +85,8 @@ void PlayerControlPreview::SetConnectedStatus(bool checked) { led_color[1] = led_pattern.position2 ? colors.led_on : colors.led_off; led_color[2] = led_pattern.position3 ? colors.led_on : colors.led_off; led_color[3] = led_pattern.position4 ? colors.led_on : colors.led_off; + is_enabled = checked; + ResetInputs(); } void PlayerControlPreview::SetControllerType(const Settings::ControllerType type) { @@ -108,6 +110,7 @@ void PlayerControlPreview::EndMapping() { analog_mapping_index = Settings::NativeAnalog::NumAnalogs; mapping_active = false; blink_counter = 0; + ResetInputs(); } void PlayerControlPreview::UpdateColors() { @@ -156,7 +159,23 @@ void PlayerControlPreview::UpdateColors() { // colors.right = QColor(Settings::values.players.GetValue()[player_index].body_color_right); } +void PlayerControlPreview::ResetInputs() { + for (std::size_t index = 0; index < button_values.size(); ++index) { + button_values[index] = false; + } + + for (std::size_t index = 0; index < axis_values.size(); ++index) { + axis_values[index].properties = {0, 1, 0}; + axis_values[index].value = {0, 0}; + axis_values[index].raw_value = {0, 0}; + } + update(); +} + void PlayerControlPreview::UpdateInput() { + if (!is_enabled && !mapping_active) { + return; + } bool input_changed = false; const auto& button_state = buttons; for (std::size_t index = 0; index < button_values.size(); ++index) { |