projects
/
paraslash.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gui: Catch SIGWINCH.
[paraslash.git]
/
gui.c
diff --git
a/gui.c
b/gui.c
index 6882a31cbaca0a39cd5e25a8b32936a094a6352a..69a9243da25245d5a4a67c1bf98deaef222dc593 100644
(file)
--- a/
gui.c
+++ b/
gui.c
@@
-941,6
+941,14
@@
static int signal_post_select(struct sched *s, __a_unused void *context)
switch (ret) {
case SIGTERM:
die(EXIT_FAILURE, "only the good die young (caught SIGTERM)\n");
switch (ret) {
case SIGTERM:
die(EXIT_FAILURE, "only the good die young (caught SIGTERM)\n");
+ case SIGWINCH:
+ PARA_NOTICE_LOG("got SIGWINCH\n");
+ if (curses_active()) {
+ shutdown_curses();
+ init_curses();
+ redraw_bot_win();
+ }
+ return 1;
case SIGINT:
return 1;
case SIGUSR1:
case SIGINT:
return 1;
case SIGUSR1:
@@
-1146,14
+1154,8
@@
static int input_post_select(__a_unused struct sched *s,
ret = wgetch(top.win);
if (ret == ERR)
return 0;
ret = wgetch(top.win);
if (ret == ERR)
return 0;
- if (ret == KEY_RESIZE) {
- if (curses_active()) {
- shutdown_curses();
- init_curses();
- redraw_bot_win();
- }
+ if (ret == KEY_RESIZE) /* already handled in signal_post_select() */
return 0;
return 0;
- }
if (exs == EXEC_IDLE)
handle_command(ret);
else if (exec_pid > 0)
if (exs == EXEC_IDLE)
handle_command(ret);
else if (exec_pid > 0)
@@
-1456,6
+1458,7
@@
static int setup_tasks_and_schedule(void)
para_install_sighandler(SIGTERM);
para_install_sighandler(SIGCHLD);
para_install_sighandler(SIGUSR1);
para_install_sighandler(SIGTERM);
para_install_sighandler(SIGCHLD);
para_install_sighandler(SIGUSR1);
+ para_install_sighandler(SIGWINCH);
signal_task->task = task_register(&(struct task_info) {
.name = "signal",
.pre_select = signal_pre_select,
signal_task->task = task_register(&(struct task_info) {
.name = "signal",
.pre_select = signal_pre_select,