Commit f3ea5c88 authored by ulteq's avatar ulteq
Browse files

Add --no-cycle option

Closes: #124
parent fd66a0f2
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ OPTIONS
     --auto-rotate         Rotate images according to Exif info (if compiled with exif=1)
 -^, --title TITLE         Set window title (see FORMAT SPECIFIERS)
 -D, --slideshow-delay NUM Set delay between automatically changing slides
     --no-cycle            Stop at both ends of the filelist 
     --cycle-once          Exit after one loop through the slideshow
 -R, --reload NUM          Reload images after NUM seconds
 -k, --keep-http           Keep local copies when viewing HTTP/FTP files
+4 −0
Original line number Diff line number Diff line
@@ -415,6 +415,7 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun)
		{"insecure"      , 0, 0, 240},
		{"no-recursive"  , 0, 0, 241},
		{"cache-size"    , 1, 0, 243},
		{"no-cycle"      , 0, 0, 244},
		{"conversion-timeout" , 1, 0, 245},
		{"version-sort"  , 0, 0, 246},
		{"offset"        , 1, 0, 247},
@@ -785,6 +786,9 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun)
			if (opt.cache_size > 2048)
				opt.cache_size = 2048;
			break;
		case 244:
			opt.no_cycle = 1;
			break;
		case 245:
			opt.conversion_timeout = atoi(optarg);
			break;
+1 −0
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ struct __fehoptions {
	unsigned char draw_info;
	unsigned char cache_thumbnails;
	unsigned char cycle_once;
	unsigned char no_cycle;
	unsigned char hold_actions[10];
	unsigned char text_bg;
	unsigned char no_fehbg;
+7 −0
Original line number Diff line number Diff line
@@ -215,6 +215,7 @@ void feh_reload_image(winwidget w, int resize, int force_new)
void slideshow_change_image(winwidget winwid, int change, int render)
{
	gib_list *last = NULL;
	gib_list *previous_file = current_file;
	int i = 0;
	int jmp = 1;
	/* We can't use filelist_len in the for loop, since that changes when we
@@ -332,6 +333,12 @@ void slideshow_change_image(winwidget winwid, int change, int render)
			last = NULL;
		}

		if (opt.no_cycle &&
			((current_file == filelist && change == SLIDE_NEXT) ||
			(previous_file == filelist && change == SLIDE_PREV))) {
				current_file = previous_file;
		}

		if (winwidget_loadimage(winwid, FEH_FILE(current_file->data))) {
			int w = gib_imlib_image_get_width(winwid->im);
			int h = gib_imlib_image_get_height(winwid->im);