diff --git a/Autoloads/SettingsManager.cs b/Autoloads/SettingsManager.cs index 3d4bdd7..0b35df2 100644 --- a/Autoloads/SettingsManager.cs +++ b/Autoloads/SettingsManager.cs @@ -149,7 +149,7 @@ public partial class SettingsManager : Node } } - private void ApplyGamepadDeadzone() + public void ApplyGamepadDeadzone() { foreach (var action in DeadzoneActions) { diff --git a/scripts/UI/GameplaySettings.cs b/scripts/UI/GameplaySettings.cs index 52905c8..edaa591 100644 --- a/scripts/UI/GameplaySettings.cs +++ b/scripts/UI/GameplaySettings.cs @@ -73,11 +73,7 @@ public partial class GameplaySettings : Control private void OnDeadzoneChanged(double value) { SettingsManager.Instance.GamepadDeadzone = (float)value; - foreach (var action in new[] { "left", "right", "up", "down" }) - { - if (InputMap.HasAction(action)) - InputMap.ActionSetDeadzone(action, (float)value); - } + SettingsManager.Instance.ApplyGamepadDeadzone(); DeadzoneValueLabel.Text = $"{value:F2}"; SaveSettings(); } diff --git a/scripts/UI/MainMenu.cs b/scripts/UI/MainMenu.cs index 1c40763..49345e6 100644 --- a/scripts/UI/MainMenu.cs +++ b/scripts/UI/MainMenu.cs @@ -48,6 +48,7 @@ public partial class MainMenu : Control { if (InputDeviceManager.Instance != null) InputDeviceManager.Instance.DeviceChanged -= OnDeviceChanged; + VisibilityChanged -= OnVisibilityChanged; } private void OnVisibilityChanged() diff --git a/scripts/UI/Marketplace.cs b/scripts/UI/Marketplace.cs index 4114c86..f196707 100644 --- a/scripts/UI/Marketplace.cs +++ b/scripts/UI/Marketplace.cs @@ -57,7 +57,7 @@ public partial class Marketplace : Control public override void _Input(InputEvent @event) { - if (@event.IsActionPressed("ui_cancel") && IsVisible()) + if (@event.IsActionReleased("ui_cancel") && IsVisible()) { Hide(); foreach (var c in ComponentsToDisable) c.ProcessMode = ProcessModeEnum.Inherit; diff --git a/scripts/UI/SettingsMenu.cs b/scripts/UI/SettingsMenu.cs index 6283e94..601f224 100644 --- a/scripts/UI/SettingsMenu.cs +++ b/scripts/UI/SettingsMenu.cs @@ -43,6 +43,7 @@ public partial class SettingsMenu : Control { if (InputDeviceManager.Instance != null) InputDeviceManager.Instance.DeviceChanged -= OnDeviceChanged; + VisibilityChanged -= OnVisibilityChanged; } private void OnVisibilityChanged() @@ -62,7 +63,7 @@ public partial class SettingsMenu : Control public override void _UnhandledInput(InputEvent @event) { - if (!@event.IsActionPressed("ui_cancel")) return; + if (!@event.IsActionReleased("ui_cancel")) return; if (UIManager.IsScreenOnTop(SettingsMenuControl)) UIManager.PopScreen(); }