Loading ChangeLog +1 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ git HEAD * Use "feh -" to read image from stdin * Fix Imlib2 and X11 warnings when opening a URL that returned an HTTP error * Add button bindings to zoom in / out (patch by sdaau) Mon, 24 Dec 2012 15:45:54 +0100 Daniel Friesel <derf+feh@finalrewind.org> Loading examples/buttons +4 −0 Original line number Diff line number Diff line Loading @@ -11,3 +11,7 @@ # Switch menu and zoom keys, useful for two-button touchpads menu 2 zoom 3 # make scroll wheel (mousewheel up and down) zoom, instead of flipping images zoom_in 4 zoom_out 5 No newline at end of file man/feh.pre +9 −0 Original line number Diff line number Diff line Loading @@ -1376,6 +1376,15 @@ Blur current image . Rotate current image . .It unbound Bq zoom_in . Zoom in . .It unbound Bq zoom_out . Zoom out . . .El . . Loading src/events.c +60 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,10 @@ void init_buttonbindings(void) cur_bb = &buttons.blur; else if (!strcmp(action, "rotate")) cur_bb = &buttons.rotate; else if (!strcmp(action, "zoom_in")) cur_bb = &buttons.zoom_in; else if (!strcmp(action, "zoom_out")) cur_bb = &buttons.zoom_out; else weprintf("buttons: Invalid action: %s", action); Loading Loading @@ -246,6 +250,62 @@ static void feh_event_handle_ButtonPress(XEvent * ev) winwid->im_click_offset_y = (winwid->click_offset_y - winwid->im_y) / winwid->old_zoom; } else if (feh_is_bb(&buttons.zoom_in, button, state)) { D(("Zoom_In Button Press event\n")); D(("click offset is %d,%d\n", ev->xbutton.x, ev->xbutton.y)); winwid->click_offset_x = ev->xbutton.x; winwid->click_offset_y = ev->xbutton.y; winwid->old_zoom = winwid->zoom; /* required to adjust the image position in zoom mode */ winwid->im_click_offset_x = (winwid->click_offset_x - winwid->im_x) / winwid->old_zoom; winwid->im_click_offset_y = (winwid->click_offset_y - winwid->im_y) / winwid->old_zoom; /* copied from zoom_in, keyevents.c */ winwid->zoom = winwid->zoom * 1.25; if (winwid->zoom > ZOOM_MAX) winwid->zoom = ZOOM_MAX; /* copied from below (ZOOM, feh_event_handle_MotionNotify) */ winwid->im_x = winwid->click_offset_x - (winwid->im_click_offset_x * winwid->zoom); winwid->im_y = winwid->click_offset_y - (winwid->im_click_offset_y * winwid->zoom); winwidget_sanitise_offsets(winwid); winwidget_render_image(winwid, 0, 0); } else if (feh_is_bb(&buttons.zoom_out, button, state)) { D(("Zoom_Out Button Press event\n")); D(("click offset is %d,%d\n", ev->xbutton.x, ev->xbutton.y)); winwid->click_offset_x = ev->xbutton.x; winwid->click_offset_y = ev->xbutton.y; winwid->old_zoom = winwid->zoom; /* required to adjust the image position in zoom mode */ winwid->im_click_offset_x = (winwid->click_offset_x - winwid->im_x) / winwid->old_zoom; winwid->im_click_offset_y = (winwid->click_offset_y - winwid->im_y) / winwid->old_zoom; /* copied from zoom_out, keyevents.c */ winwid->zoom = winwid->zoom * 0.80; if (winwid->zoom < ZOOM_MIN) winwid->zoom = ZOOM_MIN; /* copied from below (ZOOM, feh_event_handle_MotionNotify) */ winwid->im_x = winwid->click_offset_x - (winwid->im_click_offset_x * winwid->zoom); winwid->im_y = winwid->click_offset_y - (winwid->im_click_offset_y * winwid->zoom); winwidget_sanitise_offsets(winwid); winwidget_render_image(winwid, 0, 0); } else if (feh_is_bb(&buttons.reload, button, state)) { D(("Reload Button Press event\n")); feh_reload_image(winwid, 0, 1); Loading src/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -207,6 +207,8 @@ struct __fehbb { struct __fehbutton menu; struct __fehbutton blur; struct __fehbutton rotate; struct __fehbutton zoom_in; struct __fehbutton zoom_out; }; void init_parse_options(int argc, char **argv); Loading Loading
ChangeLog +1 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ git HEAD * Use "feh -" to read image from stdin * Fix Imlib2 and X11 warnings when opening a URL that returned an HTTP error * Add button bindings to zoom in / out (patch by sdaau) Mon, 24 Dec 2012 15:45:54 +0100 Daniel Friesel <derf+feh@finalrewind.org> Loading
examples/buttons +4 −0 Original line number Diff line number Diff line Loading @@ -11,3 +11,7 @@ # Switch menu and zoom keys, useful for two-button touchpads menu 2 zoom 3 # make scroll wheel (mousewheel up and down) zoom, instead of flipping images zoom_in 4 zoom_out 5 No newline at end of file
man/feh.pre +9 −0 Original line number Diff line number Diff line Loading @@ -1376,6 +1376,15 @@ Blur current image . Rotate current image . .It unbound Bq zoom_in . Zoom in . .It unbound Bq zoom_out . Zoom out . . .El . . Loading
src/events.c +60 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,10 @@ void init_buttonbindings(void) cur_bb = &buttons.blur; else if (!strcmp(action, "rotate")) cur_bb = &buttons.rotate; else if (!strcmp(action, "zoom_in")) cur_bb = &buttons.zoom_in; else if (!strcmp(action, "zoom_out")) cur_bb = &buttons.zoom_out; else weprintf("buttons: Invalid action: %s", action); Loading Loading @@ -246,6 +250,62 @@ static void feh_event_handle_ButtonPress(XEvent * ev) winwid->im_click_offset_y = (winwid->click_offset_y - winwid->im_y) / winwid->old_zoom; } else if (feh_is_bb(&buttons.zoom_in, button, state)) { D(("Zoom_In Button Press event\n")); D(("click offset is %d,%d\n", ev->xbutton.x, ev->xbutton.y)); winwid->click_offset_x = ev->xbutton.x; winwid->click_offset_y = ev->xbutton.y; winwid->old_zoom = winwid->zoom; /* required to adjust the image position in zoom mode */ winwid->im_click_offset_x = (winwid->click_offset_x - winwid->im_x) / winwid->old_zoom; winwid->im_click_offset_y = (winwid->click_offset_y - winwid->im_y) / winwid->old_zoom; /* copied from zoom_in, keyevents.c */ winwid->zoom = winwid->zoom * 1.25; if (winwid->zoom > ZOOM_MAX) winwid->zoom = ZOOM_MAX; /* copied from below (ZOOM, feh_event_handle_MotionNotify) */ winwid->im_x = winwid->click_offset_x - (winwid->im_click_offset_x * winwid->zoom); winwid->im_y = winwid->click_offset_y - (winwid->im_click_offset_y * winwid->zoom); winwidget_sanitise_offsets(winwid); winwidget_render_image(winwid, 0, 0); } else if (feh_is_bb(&buttons.zoom_out, button, state)) { D(("Zoom_Out Button Press event\n")); D(("click offset is %d,%d\n", ev->xbutton.x, ev->xbutton.y)); winwid->click_offset_x = ev->xbutton.x; winwid->click_offset_y = ev->xbutton.y; winwid->old_zoom = winwid->zoom; /* required to adjust the image position in zoom mode */ winwid->im_click_offset_x = (winwid->click_offset_x - winwid->im_x) / winwid->old_zoom; winwid->im_click_offset_y = (winwid->click_offset_y - winwid->im_y) / winwid->old_zoom; /* copied from zoom_out, keyevents.c */ winwid->zoom = winwid->zoom * 0.80; if (winwid->zoom < ZOOM_MIN) winwid->zoom = ZOOM_MIN; /* copied from below (ZOOM, feh_event_handle_MotionNotify) */ winwid->im_x = winwid->click_offset_x - (winwid->im_click_offset_x * winwid->zoom); winwid->im_y = winwid->click_offset_y - (winwid->im_click_offset_y * winwid->zoom); winwidget_sanitise_offsets(winwid); winwidget_render_image(winwid, 0, 0); } else if (feh_is_bb(&buttons.reload, button, state)) { D(("Reload Button Press event\n")); feh_reload_image(winwid, 0, 1); Loading
src/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -207,6 +207,8 @@ struct __fehbb { struct __fehbutton menu; struct __fehbutton blur; struct __fehbutton rotate; struct __fehbutton zoom_in; struct __fehbutton zoom_out; }; void init_parse_options(int argc, char **argv); Loading