X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=gui.c;h=69a9243da25245d5a4a67c1bf98deaef222dc593;hp=493bc3c9781d6cfac42b91878d52153f2243910c;hb=98dc2e1f173732411953da7300460cc419efd2bb;hpb=177ea8ea46918a925c0d2d8a07e7fbe9f478a40c diff --git a/gui.c b/gui.c index 493bc3c9..69a9243d 100644 --- a/gui.c +++ b/gui.c @@ -1,8 +1,4 @@ -/* - * Copyright (C) 1998 Andre Noll - * - * Licensed under the GPL v2. For licencing details see COPYING. - */ +/* Copyright (C) 1998 Andre Noll , see file COPYING. */ /** \file gui.c Curses-based interface for paraslash. */ @@ -945,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"); + 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: @@ -1150,14 +1154,8 @@ static int input_post_select(__a_unused struct sched *s, 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; - } if (exs == EXEC_IDLE) handle_command(ret); else if (exec_pid > 0) @@ -1460,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(SIGWINCH); signal_task->task = task_register(&(struct task_info) { .name = "signal", .pre_select = signal_pre_select,