From bbdb885d9cc40077bf50a6d13be74b9d07a50e59 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Mon, 14 Apr 2014 20:10:54 +0200 Subject: add --scroll-step option --- ChangeLog | 2 ++ man/feh.pre | 11 +++++++++++ src/keyevents.c | 8 ++++---- src/options.c | 5 +++++ src/options.h | 3 +++ 5 files changed, 25 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 57e66bd..aca6738 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,8 @@ git HEAD (closes #154) * When setting a wallpaper from a URL, do not try to store it as absolute path in .fehbg (closes #153) + * Add --scroll-step option to change scroll_{up,left,down,right} + scroll offset in pixels Fri, 28 Feb 2014 18:20:25 +0100 Daniel Friesel diff --git a/man/feh.pre b/man/feh.pre index c9a0178..00bc855 100644 --- a/man/feh.pre +++ b/man/feh.pre @@ -529,6 +529,17 @@ When not in fullscreen: Scale images to screen size if they are too big. . In tiling environments, this also causes the image to be centered in the window. . +.It Cm --scroll-step Ar count +. +Scroll +.Ar count +pixels whenever scroll_up, scroll_down, scroll_left or scroll_right is pressed. +Note that this option accepts negative numbers in case you need to inverse the +scroll direction; see +.Sx KEYS CONFIG SYNTAX +to change it permanently. +Default: 20 +. .It Cm -D , --slideshow-delay Ar float . For slideshow mode, wait diff --git a/src/keyevents.c b/src/keyevents.c index 9bda112..97acb3e 100644 --- a/src/keyevents.c +++ b/src/keyevents.c @@ -481,22 +481,22 @@ void feh_event_handle_keypress(XEvent * ev) feh_thumbnail_select_prev(winwid, 1); } else if (feh_is_kp(&keys.scroll_right, keysym, state)) { - winwid->im_x -= 20; + winwid->im_x -= opt.scroll_step;; winwidget_sanitise_offsets(winwid); winwidget_render_image(winwid, 0, 1); } else if (feh_is_kp(&keys.scroll_left, keysym, state)) { - winwid->im_x += 20; + winwid->im_x += opt.scroll_step; winwidget_sanitise_offsets(winwid); winwidget_render_image(winwid, 0, 1); } else if (feh_is_kp(&keys.scroll_down, keysym, state)) { - winwid->im_y -= 20; + winwid->im_y -= opt.scroll_step; winwidget_sanitise_offsets(winwid); winwidget_render_image(winwid, 0, 1); } else if (feh_is_kp(&keys.scroll_up, keysym, state)) { - winwid->im_y += 20; + winwid->im_y += opt.scroll_step; winwidget_sanitise_offsets(winwid); winwidget_render_image(winwid, 0, 1); } diff --git a/src/options.c b/src/options.c index c6166d9..7542cd5 100644 --- a/src/options.c +++ b/src/options.c @@ -57,6 +57,7 @@ void init_parse_options(int argc, char **argv) opt.thumb_w = 60; opt.thumb_h = 60; opt.thumb_redraw = 10; + opt.scroll_step = 20; opt.menu_font = estrdup(DEFAULT_MENU_FONT); opt.font = NULL; opt.menu_bg = estrdup(PREFIX "/share/feh/images/menubg_default.png"); @@ -398,6 +399,7 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) {"force-aliasing", 0, 0, 235}, {"no-fehbg" , 0, 0, 236}, {"keep-zoom-vp" , 0, 0, 237}, + {"scroll-step" , 1, 0, 238}, {0, 0, 0, 0} }; @@ -731,6 +733,9 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) case 237: opt.keep_zoom_vp = 1; break; + case 238: + opt.scroll_step = atoi(optarg); + break; default: break; } diff --git a/src/options.h b/src/options.h index 27d3d38..a22cc05 100644 --- a/src/options.h +++ b/src/options.h @@ -110,6 +110,9 @@ struct __fehoptions { int zoom_mode; unsigned char adjust_reload; + /* signed in case someone wants to invert scrolling real quick */ + int scroll_step; + unsigned int min_width, min_height, max_width, max_height; unsigned char mode; -- cgit v1.2.3