summaryrefslogtreecommitdiff
path: root/src/keyevents.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/keyevents.c')
-rw-r--r--src/keyevents.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/keyevents.c b/src/keyevents.c
index e691eaa..7bfacc8 100644
--- a/src/keyevents.c
+++ b/src/keyevents.c
@@ -134,13 +134,14 @@ void init_keyevents(void) {
feh_set_kb(&keys.zoom_out , 0, XK_Down , 0, XK_KP_Subtract,0, 0);
feh_set_kb(&keys.zoom_default, 0, XK_KP_Multiply, 0, XK_asterisk,0, 0);
feh_set_kb(&keys.zoom_fit , 0, XK_KP_Divide , 0, XK_slash , 0, 0);
+ feh_set_kb(&keys.zoom_fill , 0, XK_exclam , 0, 0 , 0, 0);
feh_set_kb(&keys.size_to_image, 0, XK_w , 0, 0 , 0, 0);
feh_set_kb(&keys.render , 0, XK_KP_Begin , 0, XK_R , 0, 0);
feh_set_kb(&keys.toggle_actions, 0, XK_a, 0, 0, 0, 0);
feh_set_kb(&keys.toggle_aliasing, 0, XK_A, 0, 0, 0, 0);
feh_set_kb(&keys.toggle_filenames, 0, XK_d, 0, 0, 0, 0);
#ifdef HAVE_LIBEXIF
- feh_set_kb(&keys.toggle_exif, 0, XK_e, 0, 0, 0, 0);
+ feh_set_kb(&keys.toggle_exif, 0, XK_e, 0, 0, 0, 0);
#endif
feh_set_kb(&keys.toggle_info, 0, XK_i, 0, 0, 0, 0);
feh_set_kb(&keys.toggle_pointer, 0, XK_o, 0, 0, 0, 0);
@@ -439,6 +440,8 @@ fehkey *feh_str_to_kb(char *action)
return &keys.zoom_default;
else if (!strcmp(action, "zoom_fit"))
return &keys.zoom_fit;
+ else if (!strcmp(action, "zoom_fill"))
+ return &keys.zoom_fill;
else if (!strcmp(action, "size_to_image"))
return &keys.size_to_image;
else if (!strcmp(action, "render"))
@@ -653,6 +656,14 @@ void feh_event_handle_generic(winwidget winwid, unsigned int state, KeySym keysy
winwidget_center_image(winwid);
winwidget_render_image(winwid, 0, 0);
}
+ else if (feh_is_kp(&keys.zoom_fill, state, keysym, button)) {
+ int save_zoom = opt.zoom_mode;
+ opt.zoom_mode = ZOOM_MODE_FILL;
+ feh_calc_needed_zoom(&winwid->zoom, winwid->im_w, winwid->im_h, winwid->w, winwid->h);
+ winwidget_center_image(winwid);
+ winwidget_render_image(winwid, 0, 0);
+ opt.zoom_mode = save_zoom;
+ }
else if (feh_is_kp(&keys.render, state, keysym, button)) {
if (winwid->type == WIN_TYPE_THUMBNAIL)
feh_thumbnail_show_selected();
@@ -677,7 +688,7 @@ void feh_event_handle_generic(winwidget winwid, unsigned int state, KeySym keysy
opt.draw_exif = !opt.draw_exif;
winwidget_rerender_all(0);
}
-#endif
+#endif
else if (feh_is_kp(&keys.toggle_info, state, keysym, button)) {
opt.draw_info = !opt.draw_info;
winwidget_rerender_all(0);
@@ -777,7 +788,7 @@ void feh_event_handle_generic(winwidget winwid, unsigned int state, KeySym keysy
}
#endif /* HAVE_LIBXINERAMA */
}
- else if (feh_is_kp(&keys.reload_plus, state, keysym, button)){
+ else if (feh_is_kp(&keys.reload_plus, state, keysym, button)){
if (opt.reload < SLIDESHOW_RELOAD_MAX)
opt.reload++;
else if (opt.verbose)