gui: Catch SIGWINCH.
authorAndre Noll <maan@tuebingen.mpg.de>
Sat, 23 Sep 2017 17:48:40 +0000 (19:48 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Sat, 28 Oct 2017 17:53:37 +0000 (19:53 +0200)
commit98dc2e1f173732411953da7300460cc419efd2bb
treec686a45343bbd3f5b024ba90425fd0cb61ce7f26
parentbb91597b9ecf650a63a40753f7f7c771576d252e
gui: Catch SIGWINCH.

Commit 9775f534 from more than three years ago removed the signal
handler for SIGWINCH on the grounds that it is unnecessary and
simplifies the gui menu code that was in preparation back then.

However, the gui menu feature was never merged and handling SIGWINCH in
the input task does have a disadvantage: since KEY_RESIZE is generated
by the curses library, select(2) (which watches STDIN_FILENO) does
not notice that wgetch(3) would not block or return ERR any more
after SIGWINCH was received. Hence the window will only be refreshed
after select(2) returns for another reason. This can delay the window
update for up to one second.

This patch gets rid of the delay by reintroducing the signal handler
for SIGWINCH, effectively reverting the above mentioned commit.
gui.c