-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DolphinQt/InputCommon: Make input mapping and output testing non-blocking. #13162
DolphinQt/InputCommon: Make input mapping and output testing non-blocking. #13162
Conversation
7f833ab
to
e553497
Compare
e553497
to
1244b2d
Compare
I have not reviewed the code, but I did some testing on this branch. Great job with this! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can't say I reviewed every single line in detail, but this looks reasonable. Some minor comments.
1244b2d
to
f12846a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested latest commit on both Windows and Linux (Flatpak).
Tested SDL backend for controllers, and keyboard on both linux/windows.
Works great.
Code LGTM too.
Normal Mapping Window:
Multiple input mappings can be queued/un-queued/cleared without the UI blocking.
This allows for quicker batch input mapping for power users.
Mapping a mouse-click itself requires clicking not on a mapping button.
Each mapping button interaction resets the timeout.
Waiting for the timeout cancels all queued input mappings.
Interacting with the window in other ways cancels in-progress mappings appropriately.
simplescreenrecorder-2024-11-02_00.55.44.mp4
"Advanced" Window:
The live previews now update while detecting inputs.
Button labels are renamed to be more clear.
simplescreenrecorder-2024-11-02_00.59.57.mp4
Output/Rumble test in the "Advanced" window is also now non-blocking.
Clicking it while active will stop the rumble test.
Overall, mapping window interaction is less terrible when input detection is non-blocking.