[Fix] Stop gamepad navigation on focus loss #4859
Open
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.
focus
andblur
events don't get triggered when the actual browser window gets focus (they instead fire when an element gains/loses focus). Not sure how this worked before, Electron bug?Instead now detect those changes in the Backend and pass them along
To make this modular, two new Backend events were added,
mainWindowFocussed
andmainWindowUnfocussed
. A small handler then sends agamepad.setInputsEnabled
Frontend message when either event happens (either enabling or disabling gamepad inputs), which the Frontend then listens forTo test:
main
: Notice gamepad still controls Heroic. On this branch: Notice gamepad no longer controls Heroic.Since I was already creating the
src/backend/gamepad/
folder for gamepad-related code, I also went ahead and moved thegamepadAction
handler to its own fileUse the following Checklist if you have changed something on the Backend or Frontend: