summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--man/feh.pre11
-rw-r--r--src/keyevents.c8
-rw-r--r--src/options.c5
-rw-r--r--src/options.h3
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 <px> option to change scroll_{up,left,down,right}
+ scroll offset in pixels
Fri, 28 Feb 2014 18:20:25 +0100 Daniel Friesel <derf+feh@finalrewind.org>
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;