void feh_handle_signal(int signo) { winwidget winwid; int i; switch (signo) { case SIGALRM: if (childpid) killpg(childpid, SIGINT); return; case SIGINT: case SIGTERM: case SIGQUIT: if (childpid) killpg(childpid, SIGINT); exit(128 + signo); } winwid = winwidget_get_first_window_of_type(WIN_TYPE_SLIDESHOW); if (winwid) { if (signo == SIGUSR1) slideshow_change_image(winwid, SLIDE_NEXT, 1); else if (signo == SIGUSR2) slideshow_change_image(winwid, SLIDE_PREV, 1); else if (signo == SIGURG) { reload_signal_flag = 1; } } else if (opt.multiwindow) { for (i = window_num - 1; i >= 0; i--) feh_reload_image(windows[i], 0, 0); } return; }
void feh_handle_signal(int signo) { winwidget winwid = winwidget_get_first_window_of_type(WIN_TYPE_SLIDESHOW); if (winwid) { if (signo == SIGUSR1) slideshow_change_image(winwid, SLIDE_NEXT); else if (signo == SIGUSR2) slideshow_change_image(winwid, SLIDE_PREV); } return; }