[FIX/FEATURE] Make virtual keyboard compatible with all inputs #3961
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR updates the virtual keyboard to solve a few issues and makes it compatible with all text inputs.
Before this, the virtual keyboard when using a gamepad was only valid for the search box in the library and it was partially compatible with the search box in the winetricks dialog (it would open, but behind the dialog, so it was unusable).
This PR has a few changes:
showModal
for dialogs instead of thepopover
API, that fixes the issue with the keyboard appearing behind the winetricks dialog (closes Built-in virtual keyboard is behind the winetricks modal #3197 )x
button of the search inputs was not working with the controller (instead of clicking the SVG icon, we now click the parent button)TextInputField
to support theinput
events sent by the keyboard module (we can't use react's onChange flow)onChange
function passed toTextInputField
receives the new value and not a react on change event, so I had to updated all the places that used that to replace thee.target.value
withnewValue
There are 2 issues I can't find how to fix (both errors are present in the main branch already though, so leaving the out of the scope of this):
Use the following Checklist if you have changed something on the Backend or Frontend: