Allow signal handling interoperability with raw display #557
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.
Checklist
master
orpython-dual-support
branchtox
successfully in local environmentDescription:
Currently, it's either urwid's handler or another... except an/some aggregate handler(s) (which calls urwid's and the other(s)) is/are installed by the program using the different libraries, which in certain cases might either be difficult to trace where/when each library installs its handler or be implementation detail which could change without notice.
This changes ensure any previously installed signal handlers are stored, restored and invoked (by
raw_display.Screen
's signal handlers).This prevents breaking functionality of other libraries which install signal handlers and are unaware of urwid.
I encountered this issue while developing a library where
SIGWINCH
would be really useful.Sample test code: