diff options
-rw-r--r-- | src/feh.h | 2 | ||||
-rw-r--r-- | src/keyevents.c | 5 | ||||
-rw-r--r-- | src/slideshow.c | 3 |
3 files changed, 9 insertions, 1 deletions
@@ -93,7 +93,7 @@ enum bgmode_type { BG_MODE_NONE = 0, BG_MODE_TILE, BG_MODE_CENTER, BG_MODE_SEAMLESS, BG_MODE_SCALE, BG_MODE_FILL }; -enum slide_change { SLIDE_NEXT, SLIDE_PREV, SLIDE_FIRST, SLIDE_LAST, +enum slide_change { SLIDE_NEXT, SLIDE_PREV, SLIDE_RAND, SLIDE_FIRST, SLIDE_LAST, SLIDE_JUMP_FWD, SLIDE_JUMP_BACK }; diff --git a/src/keyevents.c b/src/keyevents.c index 0350c8a..3f3cdcc 100644 --- a/src/keyevents.c +++ b/src/keyevents.c @@ -328,6 +328,11 @@ void feh_event_handle_keypress(XEvent * ev) if (opt.slideshow) slideshow_change_image(winwid, SLIDE_PREV); break; + case 'z': + case 'Z': + if (opt.slideshow) + slideshow_change_image(winwid, SLIDE_RAND); + break; case 'q': case 'Q': winwidget_destroy_all(); diff --git a/src/slideshow.c b/src/slideshow.c index 0a70347..4835360 100644 --- a/src/slideshow.c +++ b/src/slideshow.c @@ -205,6 +205,9 @@ void slideshow_change_image(winwidget winwid, int change) case SLIDE_PREV: current_file = feh_list_jump(filelist, current_file, BACK, 1); break; + case SLIDE_RAND: + current_file = feh_list_jump(filelist, current_file, FORWARD, rand() % filelist_len); + break; case SLIDE_JUMP_FWD: if (filelist_len < 5) jmp = 1; |