diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/collage.c | 1 | ||||
| -rw-r--r-- | src/filelist.c | 2 | ||||
| -rw-r--r-- | src/index.c | 1 | ||||
| -rw-r--r-- | src/slideshow.c | 23 | ||||
| -rw-r--r-- | src/thumbnail.c | 1 | 
5 files changed, 9 insertions, 19 deletions
| diff --git a/src/collage.c b/src/collage.c index e76f8ae..3e03828 100644 --- a/src/collage.c +++ b/src/collage.c @@ -119,7 +119,6 @@ void init_collage_mode(void)  		file = FEH_FILE(l->data);  		if (last) {  			filelist = feh_file_remove_from_list(filelist, last); -			filelist_len--;  			last = NULL;  		}  		D(3, ("About to load image %s\n", file->filename)); diff --git a/src/filelist.c b/src/filelist.c index da17f15..2eb43af 100644 --- a/src/filelist.c +++ b/src/filelist.c @@ -113,6 +113,8 @@ gib_list *feh_file_remove_from_list(gib_list * list, gib_list * l)  {  	D_ENTER(4);  	feh_file_free(FEH_FILE(l->data)); +	D(4, ("filelist_len %d -> %d\n", filelist_len, filelist_len - 1)); +	filelist_len--;  	D_RETURN(4, gib_list_remove(list, l));  } diff --git a/src/index.c b/src/index.c index 5c13d19..c7c0a84 100644 --- a/src/index.c +++ b/src/index.c @@ -306,7 +306,6 @@ void init_index_mode(void)  		file = FEH_FILE(l->data);  		if (last) {  			filelist = feh_file_remove_from_list(filelist, last); -			filelist_len--;  			last = NULL;  		}  		D(4, ("About to load image %s\n", file->filename)); diff --git a/src/slideshow.c b/src/slideshow.c index 1a3ffe8..314374c 100644 --- a/src/slideshow.c +++ b/src/slideshow.c @@ -50,7 +50,6 @@ void init_slideshow_mode(void)  		file = FEH_FILE(l->data);  		if (last) {  			filelist = feh_file_remove_from_list(filelist, last); -			filelist_len--;  			last = NULL;  		}  		current_file = l; @@ -128,6 +127,7 @@ void feh_reload_image(winwidget w, int resize, int force_new)  		winwidget_rename(w, title);  		free(title);  		free(new_title); +		filelist = feh_file_remove_from_list(filelist, w->file);  		D_RETURN_(4);  	}  	if (force_new) { @@ -244,7 +244,6 @@ void slideshow_change_image(winwidget winwid, int change)  		if (last) {  			filelist = feh_file_remove_from_list(filelist, last); -			filelist_len--;  			last = NULL;  		}  		s = slideshow_create_name(FEH_FILE(current_file->data)); @@ -268,18 +267,12 @@ void slideshow_change_image(winwidget winwid, int change)  		} else  			last = current_file;  	} -	if (!success) { -		/* We get here if three files in a row could not be loaded. -		 * However, it seems that this piece of code is never reached when feh -		 * would otherwise fail; it's only executed in the aforementioned case, -		 * causing slideshows to exit although there still are lots of working slides. -		 * -		 * So far, there is one known case were we should exit here: -		 * When viewing a set of files, externally removing all of them and then resizing -		 * the window in feh, feh will print lots of imlib errors and eventually segfault. -		 */ -		weprintf("No more slides in show?"); -	} +	if (last) +		filelist = feh_file_remove_from_list(filelist, last); + +	if (filelist_len == 0) +		eprintf("No more slides in show"); +  	if (opt.slideshow_delay >= 0.0)  		feh_add_timer(cb_slide_timer, winwid, opt.slideshow_delay, "SLIDE_CHANGE");  	D_RETURN_(4); @@ -445,7 +438,6 @@ void feh_filelist_image_remove(winwidget winwid, char do_delete)  		doomed = current_file;  		slideshow_change_image(winwid, SLIDE_NEXT); -		filelist_len--;  		if (do_delete)  			filelist = feh_file_rm_and_free(filelist, doomed);  		else @@ -460,7 +452,6 @@ void feh_filelist_image_remove(winwidget winwid, char do_delete)  		free(s);  	} else if ((winwid->type == WIN_TYPE_SINGLE)  		   || (winwid->type == WIN_TYPE_THUMBNAIL_VIEWER)) { -		filelist_len--;  		if (do_delete)  			filelist = feh_file_rm_and_free(filelist, winwid->file);  		else diff --git a/src/thumbnail.c b/src/thumbnail.c index a2246ac..425fa8c 100644 --- a/src/thumbnail.c +++ b/src/thumbnail.c @@ -179,7 +179,6 @@ void init_thumbnail_mode(void)  		file = FEH_FILE(l->data);  		if (last) {  			filelist = feh_file_remove_from_list(filelist, last); -			filelist_len--;  			last = NULL;  		}  		D(4, ("About to load image %s\n", file->filename)); | 
