aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Input
diff options
context:
space:
mode:
authorTSRBerry <20988865+TSRBerry@users.noreply.github.com>2024-05-14 17:14:39 +0200
committerGitHub <noreply@github.com>2024-05-14 17:14:39 +0200
commita3dc295c5f867bddb56a38f3a848ceb61ff30d32 (patch)
tree7e8b472d377f2ff49ec31e1d4b01d59548271807 /src/Ryujinx.Input
parent2ef4f92b0793feb7073ed85b7f7dc08dca6f14e9 (diff)
Disable keyboard controller input while swkbd is open (foreground) (#6646)
* Block input updates while swkbd is open in foreground mode * Flush internal driver state before unblocking input updates * Rename Flush to Clear and remove unnecessary attribute
Diffstat (limited to 'src/Ryujinx.Input')
-rw-r--r--src/Ryujinx.Input/HLE/NpadManager.cs5
-rw-r--r--src/Ryujinx.Input/IGamepadDriver.cs6
2 files changed, 11 insertions, 0 deletions
diff --git a/src/Ryujinx.Input/HLE/NpadManager.cs b/src/Ryujinx.Input/HLE/NpadManager.cs
index 4c7bb8b7..2409ecf2 100644
--- a/src/Ryujinx.Input/HLE/NpadManager.cs
+++ b/src/Ryujinx.Input/HLE/NpadManager.cs
@@ -174,6 +174,11 @@ namespace Ryujinx.Input.HLE
{
lock (_lock)
{
+ foreach (InputConfig inputConfig in _inputConfig)
+ {
+ _controllers[(int)inputConfig.PlayerIndex].GamepadDriver.Clear();
+ }
+
_blockInputUpdates = false;
}
}
diff --git a/src/Ryujinx.Input/IGamepadDriver.cs b/src/Ryujinx.Input/IGamepadDriver.cs
index 67b01c26..ff4d3699 100644
--- a/src/Ryujinx.Input/IGamepadDriver.cs
+++ b/src/Ryujinx.Input/IGamepadDriver.cs
@@ -33,5 +33,11 @@ namespace Ryujinx.Input
/// <param name="id">The unique id of the gamepad</param>
/// <returns>An instance of <see cref="IGamepad"/> associated to the gamepad id given or null if not found</returns>
IGamepad GetGamepad(string id);
+
+ /// <summary>
+ /// Flush the internal state of the driver.
+ /// </summary>
+ /// <remarks>Does nothing by default.</remarks>
+ void Clear() { }
}
}