summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/feh.pre4
-rw-r--r--src/keyevents.c5
-rw-r--r--src/options.h1
3 files changed, 10 insertions, 0 deletions
diff --git a/man/feh.pre b/man/feh.pre
index 6c619cd..d90c880 100644
--- a/man/feh.pre
+++ b/man/feh.pre
@@ -1376,6 +1376,10 @@ Close current window
.
Jump to a random position in the current filelist
.
+.It Z Bq toggle_auto_zoom
+.
+Toggle auto-zoom.
+.
.It \&[, \&] Bq prev_dir, next_dir
.
Jump to the first image of the previous or next sequence of images sharing
diff --git a/src/keyevents.c b/src/keyevents.c
index f082a78..793767b 100644
--- a/src/keyevents.c
+++ b/src/keyevents.c
@@ -185,6 +185,7 @@ void init_keyevents(void) {
feh_set_kb("render" , 0, XK_KP_Begin , 0, XK_R , 0, 0);
feh_set_kb("toggle_actions" , 0, XK_a, 0, 0, 0, 0);
feh_set_kb("toggle_aliasing" , 0, XK_A, 0, 0, 0, 0);
+ feh_set_kb("toggle_auto_zoom" , 0, XK_Z, 0, 0, 0, 0);
#ifdef HAVE_LIBEXIF
feh_set_kb("toggle_exif" , 0, XK_e, 0, 0, 0, 0);
#endif
@@ -637,6 +638,10 @@ void feh_event_handle_generic(winwidget winwid, unsigned int state, KeySym keysy
winwid->force_aliasing = !winwid->force_aliasing;
winwidget_render_image(winwid, 0, 0);
}
+ else if (feh_is_kp(EVENT_toggle_auto_zoom, state, keysym, button)) {
+ opt.zoom_mode = (opt.zoom_mode == 0 ? ZOOM_MODE_MAX : 0);
+ winwidget_rerender_all(1);
+ }
else if (feh_is_kp(EVENT_toggle_filenames, state, keysym, button)) {
opt.draw_filename = !opt.draw_filename;
winwidget_rerender_all(0);
diff --git a/src/options.h b/src/options.h
index c6b4e0e..d4de3c5 100644
--- a/src/options.h
+++ b/src/options.h
@@ -189,6 +189,7 @@ enum key_action {
EVENT_render,
EVENT_toggle_actions,
EVENT_toggle_aliasing,
+ EVENT_toggle_auto_zoom,
#ifdef HAVE_LIBEXIF
EVENT_toggle_exif,
#endif