From 85fba735f87bb9aae2894f658d4b6c470fbe672a Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Mon, 2 May 2011 19:22:30 +0200 Subject: Use next/prev/render keys to select images in thumbnail mode (closes #26) --- src/thumbnail.c | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'src/thumbnail.c') diff --git a/src/thumbnail.c b/src/thumbnail.c index e997364..ee8b101 100644 --- a/src/thumbnail.c +++ b/src/thumbnail.c @@ -926,7 +926,7 @@ void feh_thumbnail_show_fullsize(feh_file *thumbfile) } } -void feh_thumbnail_mark_selected(winwidget winwid, feh_thumbnail *thumbnail) +void feh_thumbnail_select(winwidget winwid, feh_thumbnail *thumbnail) { Imlib_Image origwin; @@ -959,7 +959,45 @@ void feh_thumbnail_mark_selected(winwidget winwid, feh_thumbnail *thumbnail) td.selected = thumbnail; } +void feh_thumbnail_select_next(winwidget winwid, int jump) +{ + gib_list *l, *tmp; + int i; + + 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; + } + + 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; + + 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; + feh_thumbnail_select(winwid, FEH_THUMB(l->data)); + return; + } + } + feh_thumbnail_select(winwid, FEH_THUMB(thumbnails->data)); +} + +inline void feh_thumbnail_show_selected() +{ + if (td.selected && td.selected->file) + feh_thumbnail_show_fullsize(td.selected->file); +} int feh_thumbnail_setup_thumbnail_dir(void) { -- cgit v1.2.3