diff options
| author | TSRBerry <20988865+TSRBerry@users.noreply.github.com> | 2024-05-17 21:58:03 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-17 16:58:03 -0300 |
| commit | 8f51938e2b22ee438ce8f849cc9258026ec5da29 (patch) | |
| tree | 6fb3f1bebb63000de9290489521794dec4fa1de9 /src/Ryujinx.Gtk3 | |
| parent | 4d84df94873a070f6f5c199438f957b24d8cf8a9 (diff) | |
Disable keyboard controller input while swkbd is open (foreground) (second attempt) (#6808)
* 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
* Clear the driver state only if the GamepadDriver isn't null
Diffstat (limited to 'src/Ryujinx.Gtk3')
| -rw-r--r-- | src/Ryujinx.Gtk3/Input/GTK3/GTK3KeyboardDriver.cs | 5 | ||||
| -rw-r--r-- | src/Ryujinx.Gtk3/UI/Applet/GtkHostUIHandler.cs | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/Ryujinx.Gtk3/Input/GTK3/GTK3KeyboardDriver.cs b/src/Ryujinx.Gtk3/Input/GTK3/GTK3KeyboardDriver.cs index e502254b..bd71c793 100644 --- a/src/Ryujinx.Gtk3/Input/GTK3/GTK3KeyboardDriver.cs +++ b/src/Ryujinx.Gtk3/Input/GTK3/GTK3KeyboardDriver.cs @@ -81,6 +81,11 @@ namespace Ryujinx.Input.GTK3 return _pressedKeys.Contains(nativeKey); } + public void Clear() + { + _pressedKeys.Clear(); + } + public IGamepad GetGamepad(string id) { if (!_keyboardIdentifers[0].Equals(id)) diff --git a/src/Ryujinx.Gtk3/UI/Applet/GtkHostUIHandler.cs b/src/Ryujinx.Gtk3/UI/Applet/GtkHostUIHandler.cs index 1d918d21..b3f509a0 100644 --- a/src/Ryujinx.Gtk3/UI/Applet/GtkHostUIHandler.cs +++ b/src/Ryujinx.Gtk3/UI/Applet/GtkHostUIHandler.cs @@ -107,6 +107,8 @@ namespace Ryujinx.UI.Applet swkbdDialog.SetInputLengthValidation(args.StringLengthMin, args.StringLengthMax); swkbdDialog.SetInputValidation(args.KeyboardMode); + ((MainWindow)_parent).RendererWidget.NpadManager.BlockInputUpdates(); + if (swkbdDialog.Run() == (int)ResponseType.Ok) { inputText = swkbdDialog.InputEntry.Text; @@ -128,6 +130,7 @@ namespace Ryujinx.UI.Applet }); dialogCloseEvent.WaitOne(); + ((MainWindow)_parent).RendererWidget.NpadManager.UnblockInputUpdates(); userText = error ? null : inputText; |
