Correctly disables the XRecord context. (probably) #583
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.
When using pynput on a Xorg server, if I start a MouseListener and/or KeyboardListener, stop it after a while, and then join, it does not join immediately. The join will not be completed until a mouse or key event occurs afterward. A test program can be retrieved from the following gist:
https://gist.github.com/fukuchi/b06c30f04cd69b396f127d2b781c1ff3
This is because the context enabled in _run() in _util/xorg.py is not correctly disabled in _stop_platform().
This pull request fixes this problem. However, I am not familiar with Xlib programming and XRecord extensions, so I am not sure why this works correctly.
I have tested this patch on Ubuntu 22.04 (Python 3.10.12) and Ubuntu 23.10 (Python 3.11.6).