Ignore signals during command execution

Disable signal handlers in wins_prepare_external() and reactivate them
in wins_unprepare_external().

Before, it was possible that resizing the window during editor/pager
mode resulted in the calcurse main screen appearing on top.

Addresses BUG#9.

Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
This commit is contained in:
Lukas Fleischer
2012-11-28 21:42:54 +01:00
parent 7f16e1c1d3
commit 8ae75f3ca7
3 changed files with 20 additions and 0 deletions

View File

@@ -108,3 +108,17 @@ void sigs_init()
|| !sigs_set_hdlr(SIGINT, SIG_IGN))
exit_calcurse(1);
}
/* Ignore SIGWINCH and SIGTERM signals. */
void sigs_ignore(void)
{
sigs_set_hdlr(SIGWINCH, SIG_IGN);
sigs_set_hdlr(SIGTERM, SIG_IGN);
}
/* No longer ignore SIGWINCH and SIGTERM signals. */
void sigs_unignore(void)
{
sigs_set_hdlr(SIGWINCH, generic_hdlr);
sigs_set_hdlr(SIGTERM, generic_hdlr);
}