Loading ChangeLog +2 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ git HEAD <https://github.com/derf/feh/issues/113> * Respect --start-at in thumbnail mode <https://github.com/derf/feh/issues/116> * Make 'z' (jump_random) work in thumbnail mode as well, fix thumbnail selection roll-over <https://github.com/derf/feh/issues/115> Tue, 16 Oct 2012 06:29:58 +0200 Daniel Friesel <derf+feh@finalrewind.org> Loading src/keyevents.c +4 −1 Original line number Diff line number Diff line Loading @@ -658,6 +658,9 @@ void feh_event_handle_keypress(XEvent * ev) opt.hide_pointer = !opt.hide_pointer; } else if (feh_is_kp(&keys.jump_random, keysym, state)) { if (winwid->type == WIN_TYPE_THUMBNAIL) feh_thumbnail_select_next(winwid, rand() % (filelist_len - 1)); else slideshow_change_image(winwid, SLIDE_RAND, 1); } else if (feh_is_kp(&keys.toggle_caption, keysym, state)) { Loading src/thumbnail.c +26 −15 Original line number Diff line number Diff line Loading @@ -786,36 +786,47 @@ void feh_thumbnail_select(winwidget winwid, feh_thumbnail *thumbnail) void feh_thumbnail_select_next(winwidget winwid, int jump) { gib_list *l, *tmp; int i; gib_list *l; feh_thumbnail *thumb; int len = 0, cur = 0, target = 0; for (l = thumbnails; l && l->next; l = l->next) { tmp = l; for (i = jump; (i > 0) && tmp->next; i--) tmp = tmp->next; if (tmp->data == td.selected) break; for (l = thumbnails; l; l = l->next) { thumb = FEH_THUMB(l->data); if (thumb == td.selected) cur = len; len++; } target = (cur + len - jump) % len; for (l = thumbnails; l; l = l->next) { if (target-- == 0) { feh_thumbnail_select(winwid, FEH_THUMB(l->data)); } } } void feh_thumbnail_select_prev(winwidget winwid, int jump) { gib_list *l; feh_thumbnail *thumb; int i; int len = 0, cur = 0, target = 0; for (l = thumbnails; l; l = l->next) { thumb = FEH_THUMB(l->data); if ((thumb == td.selected) && l->next) { for (i = jump; (i > 0) && l->next; i--) l = l->next; if (thumb == td.selected) cur = len; len++; } target = (cur + jump) % len; for (l = thumbnails; l; l = l->next) { if (target-- == 0) { feh_thumbnail_select(winwid, FEH_THUMB(l->data)); return; break; } } feh_thumbnail_select(winwid, FEH_THUMB(thumbnails->data)); } inline void feh_thumbnail_show_selected() Loading Loading
ChangeLog +2 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ git HEAD <https://github.com/derf/feh/issues/113> * Respect --start-at in thumbnail mode <https://github.com/derf/feh/issues/116> * Make 'z' (jump_random) work in thumbnail mode as well, fix thumbnail selection roll-over <https://github.com/derf/feh/issues/115> Tue, 16 Oct 2012 06:29:58 +0200 Daniel Friesel <derf+feh@finalrewind.org> Loading
src/keyevents.c +4 −1 Original line number Diff line number Diff line Loading @@ -658,6 +658,9 @@ void feh_event_handle_keypress(XEvent * ev) opt.hide_pointer = !opt.hide_pointer; } else if (feh_is_kp(&keys.jump_random, keysym, state)) { if (winwid->type == WIN_TYPE_THUMBNAIL) feh_thumbnail_select_next(winwid, rand() % (filelist_len - 1)); else slideshow_change_image(winwid, SLIDE_RAND, 1); } else if (feh_is_kp(&keys.toggle_caption, keysym, state)) { Loading
src/thumbnail.c +26 −15 Original line number Diff line number Diff line Loading @@ -786,36 +786,47 @@ void feh_thumbnail_select(winwidget winwid, feh_thumbnail *thumbnail) void feh_thumbnail_select_next(winwidget winwid, int jump) { gib_list *l, *tmp; int i; gib_list *l; feh_thumbnail *thumb; int len = 0, cur = 0, target = 0; for (l = thumbnails; l && l->next; l = l->next) { tmp = l; for (i = jump; (i > 0) && tmp->next; i--) tmp = tmp->next; if (tmp->data == td.selected) break; for (l = thumbnails; l; l = l->next) { thumb = FEH_THUMB(l->data); if (thumb == td.selected) cur = len; len++; } target = (cur + len - jump) % len; for (l = thumbnails; l; l = l->next) { if (target-- == 0) { feh_thumbnail_select(winwid, FEH_THUMB(l->data)); } } } void feh_thumbnail_select_prev(winwidget winwid, int jump) { gib_list *l; feh_thumbnail *thumb; int i; int len = 0, cur = 0, target = 0; for (l = thumbnails; l; l = l->next) { thumb = FEH_THUMB(l->data); if ((thumb == td.selected) && l->next) { for (i = jump; (i > 0) && l->next; i--) l = l->next; if (thumb == td.selected) cur = len; len++; } target = (cur + jump) % len; for (l = thumbnails; l; l = l->next) { if (target-- == 0) { feh_thumbnail_select(winwid, FEH_THUMB(l->data)); return; break; } } feh_thumbnail_select(winwid, FEH_THUMB(thumbnails->data)); } inline void feh_thumbnail_show_selected() Loading