Commit 64e9c952 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

Show correct file number after deleting image

In the image_remove function, slideshow_change_image needs to be called before
removing the image from the filelist.  Because of this, the "x of y" displayed
by --draw-filename is wrong (y is 1 too high).

This commit introduces a new 'render' argument to slideshow_chingae_image.
The image_remove function calls it with render=0, edits the filelist and then
runs by winwidget_render_image itself.

Patch by Yu-Jie Lin.
parent 03e54647
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -14,6 +14,8 @@ git HEAD
      <https://github.com/derf/feh/issues/53>
    * Fix save_image key for *.JPG and similar filenames
      <https://github.com/derf/feh/issues/51>
    * Show correct file number after deleting image
      <https://github.com/derf/feh/issues/46>

Mon, 04 Jul 2011 14:46:36 +0200  Daniel Friesel <derf@finalrewind.org>

+3 −3
Original line number Diff line number Diff line
@@ -130,12 +130,12 @@ static void feh_event_handle_ButtonPress(XEvent * ev)
		D(("Prev Button Press event\n"));
		if ((winwid != NULL)
				&& (winwid->type == WIN_TYPE_SLIDESHOW))
			slideshow_change_image(winwid, SLIDE_PREV);
			slideshow_change_image(winwid, SLIDE_PREV, 1);
	} else if (ev->xbutton.button == opt.next_button) {
		D(("Next Button Press event\n"));
		if ((winwid != NULL)
				&& (winwid->type == WIN_TYPE_SLIDESHOW))
			slideshow_change_image(winwid, SLIDE_NEXT);
			slideshow_change_image(winwid, SLIDE_NEXT, 1);
	} else {
		D(("Received other ButtonPress event\n"));
	}
@@ -191,7 +191,7 @@ static void feh_event_handle_ButtonRelease(XEvent * ev)
				winwid->mode = MODE_NORMAL;
			if ((winwid != NULL)
					&& (winwid->type == WIN_TYPE_SLIDESHOW)) {
				slideshow_change_image(winwid, SLIDE_NEXT);
				slideshow_change_image(winwid, SLIDE_NEXT, 1);
			} else if ((winwid != NULL)
					&& (winwid->type == WIN_TYPE_THUMBNAIL)) {
				feh_file *thumbfile;
+1 −1
Original line number Diff line number Diff line
@@ -121,7 +121,7 @@ void init_unloadables_mode(void);
void feh_clean_exit(void);
int feh_load_image(Imlib_Image * im, feh_file * file);
void show_mini_usage(void);
void slideshow_change_image(winwidget winwid, int change);
void slideshow_change_image(winwidget winwid, int change, int render);
void slideshow_pause_toggle(winwidget w);
char *slideshow_create_name(feh_file * file);
void init_keyevents(void);
+8 −8
Original line number Diff line number Diff line
@@ -334,7 +334,7 @@ void feh_event_invoke_action(winwidget winwid, unsigned char action)
			winwidget_update_caption(winwid);

			if (! opt.hold_actions[action])
				slideshow_change_image(winwid, SLIDE_NEXT);
				slideshow_change_image(winwid, SLIDE_NEXT, 1);

		} else if ((winwid->type == WIN_TYPE_SINGLE)
				|| (winwid->type == WIN_TYPE_THUMBNAIL_VIEWER)) {
@@ -448,13 +448,13 @@ void feh_event_handle_keypress(XEvent * ev)

	if (feh_is_kp(&keys.next_img, keysym, state)) {
		if (opt.slideshow)
			slideshow_change_image(winwid, SLIDE_NEXT);
			slideshow_change_image(winwid, SLIDE_NEXT, 1);
		else if (winwid->type == WIN_TYPE_THUMBNAIL)
			feh_thumbnail_select_next(winwid, 1);
	}
	else if (feh_is_kp(&keys.prev_img, keysym, state)) {
		if (opt.slideshow)
			slideshow_change_image(winwid, SLIDE_PREV);
			slideshow_change_image(winwid, SLIDE_PREV, 1);
		else if (winwid->type == WIN_TYPE_THUMBNAIL)
			feh_thumbnail_select_prev(winwid, 1);
	}
@@ -492,13 +492,13 @@ void feh_event_handle_keypress(XEvent * ev)
	}
	else if (feh_is_kp(&keys.jump_back, keysym, state)) {
		if (opt.slideshow)
			slideshow_change_image(winwid, SLIDE_JUMP_BACK);
			slideshow_change_image(winwid, SLIDE_JUMP_BACK, 1);
		else if (winwid->type == WIN_TYPE_THUMBNAIL)
			feh_thumbnail_select_prev(winwid, 10);
	}
	else if (feh_is_kp(&keys.jump_fwd, keysym, state)) {
		if (opt.slideshow)
			slideshow_change_image(winwid, SLIDE_JUMP_FWD);
			slideshow_change_image(winwid, SLIDE_JUMP_FWD, 1);
		else if (winwid->type == WIN_TYPE_THUMBNAIL)
			feh_thumbnail_select_next(winwid, 10);
	}
@@ -517,11 +517,11 @@ void feh_event_handle_keypress(XEvent * ev)
	}
	else if (feh_is_kp(&keys.jump_first, keysym, state)) {
		if (opt.slideshow)
			slideshow_change_image(winwid, SLIDE_FIRST);
			slideshow_change_image(winwid, SLIDE_FIRST, 1);
	}
	else if (feh_is_kp(&keys.jump_last, keysym, state)) {
		if (opt.slideshow)
			slideshow_change_image(winwid, SLIDE_LAST);
			slideshow_change_image(winwid, SLIDE_LAST, 1);
	}
	else if (feh_is_kp(&keys.action_0, keysym, state)) {
		feh_event_invoke_action(winwid, 0);
@@ -617,7 +617,7 @@ void feh_event_handle_keypress(XEvent * ev)
		opt.hide_pointer = !opt.hide_pointer;
	}
	else if (feh_is_kp(&keys.jump_random, keysym, state)) {
		slideshow_change_image(winwid, SLIDE_RAND);
		slideshow_change_image(winwid, SLIDE_RAND, 1);
	}
	else if (feh_is_kp(&keys.toggle_caption, keysym, state)) {
		if (opt.caption_path)
+4 −4
Original line number Diff line number Diff line
@@ -1321,25 +1321,25 @@ void feh_menu_cb(feh_menu * m, feh_menu_item * i, int action, void *data)
		case CB_SORT_FILENAME:
			filelist = gib_list_sort(filelist, feh_cmp_filename);
			if (opt.jump_on_resort) {
				slideshow_change_image(m->fehwin, SLIDE_FIRST);
				slideshow_change_image(m->fehwin, SLIDE_FIRST, 1);
			}
			break;
		case CB_SORT_IMAGENAME:
			filelist = gib_list_sort(filelist, feh_cmp_name);
			if (opt.jump_on_resort) {
				slideshow_change_image(m->fehwin, SLIDE_FIRST);
				slideshow_change_image(m->fehwin, SLIDE_FIRST, 1);
			}
			break;
		case CB_SORT_FILESIZE:
			filelist = gib_list_sort(filelist, feh_cmp_size);
			if (opt.jump_on_resort) {
				slideshow_change_image(m->fehwin, SLIDE_FIRST);
				slideshow_change_image(m->fehwin, SLIDE_FIRST, 1);
			}
			break;
		case CB_SORT_RANDOMIZE:
			filelist = gib_list_randomize(filelist);
			if (opt.jump_on_resort) {
				slideshow_change_image(m->fehwin, SLIDE_FIRST);
				slideshow_change_image(m->fehwin, SLIDE_FIRST, 1);
			}
			break;
		case CB_FIT:
Loading