Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;
}