Loading ChangeLog +3 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,9 @@ git HEAD <https://github.com/derf/feh/issues/109> * Fix delete not working on last image with --cycle-once <https://github.com/derf/feh/issues/107> * Treat quick, low-offset drags (1px or 2px move in <1 second) as clicks to improve graphics tablet support <https://github.com/derf/feh/issues/113> Tue, 16 Oct 2012 06:29:58 +0200 Daniel Friesel <derf+feh@finalrewind.org> Loading man/feh.pre +9 −5 Original line number Diff line number Diff line Loading @@ -1363,14 +1363,18 @@ Rotate current image . .Sh MOUSE ACTIONS . When viewing an image, by default mouse button 1 pans .Pq moves the image around Default Bindings: When viewing an image, mouse button 1 pans the image .Pq moves it around or, when only clicked, moves to the next image .Pq slideshow mode only ; button 2 zooms .Pq slideshow mode only . Quick drags with less than 2px of movement per axis will be treated as clicks to aid grahics tablet users. . Mouse button 2 zooms .Po click and drag left->right to zoom in, right->left to zoom out, click once to restore zoom to 100% .Pc ; .Pc and mouse button 3 opens the menu. . .Pp Loading src/events.c +12 −2 Original line number Diff line number Diff line Loading @@ -32,6 +32,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "events.h" #include "thumbnail.h" #define FEH_JITTER_OFFSET 2 #define FEH_JITTER_TIME 1 fehbb buttons; feh_event_handler *ev_handler[LASTEvent]; Loading Loading @@ -226,6 +229,7 @@ static void feh_event_handle_ButtonPress(XEvent * ev) D(("click offset is %d,%d\n", ev->xbutton.x, ev->xbutton.y)); winwid->click_offset_x = ev->xbutton.x - winwid->im_x; winwid->click_offset_y = ev->xbutton.y - winwid->im_y; winwid->click_start_time = time(NULL); } else if (feh_is_bb(&buttons.zoom, button, state)) { D(("Zoom Button Press event\n")); Loading Loading @@ -496,9 +500,15 @@ static void feh_event_handle_MotionNotify(XEvent * ev) winwid = winwidget_get_from_window(ev->xmotion.window); if (winwid) { if (opt.mode == MODE_NEXT) { if ((abs(winwid->click_offset_x - (ev->xmotion.x - winwid->im_x)) > FEH_JITTER_OFFSET) || (abs(winwid->click_offset_y - (ev->xmotion.y - winwid->im_y)) > FEH_JITTER_OFFSET) || (time(NULL) - winwid->click_start_time > FEH_JITTER_TIME)) { opt.mode = MODE_PAN; winwid->mode = MODE_PAN; } else return; } D(("Panning\n")); orig_x = winwid->im_x; orig_y = winwid->im_y; Loading src/winwidget.h +1 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,7 @@ struct __winwidget { int click_offset_y; int im_click_offset_x; int im_click_offset_y; time_t click_start_time; unsigned char has_rotated; }; Loading Loading
ChangeLog +3 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,9 @@ git HEAD <https://github.com/derf/feh/issues/109> * Fix delete not working on last image with --cycle-once <https://github.com/derf/feh/issues/107> * Treat quick, low-offset drags (1px or 2px move in <1 second) as clicks to improve graphics tablet support <https://github.com/derf/feh/issues/113> Tue, 16 Oct 2012 06:29:58 +0200 Daniel Friesel <derf+feh@finalrewind.org> Loading
man/feh.pre +9 −5 Original line number Diff line number Diff line Loading @@ -1363,14 +1363,18 @@ Rotate current image . .Sh MOUSE ACTIONS . When viewing an image, by default mouse button 1 pans .Pq moves the image around Default Bindings: When viewing an image, mouse button 1 pans the image .Pq moves it around or, when only clicked, moves to the next image .Pq slideshow mode only ; button 2 zooms .Pq slideshow mode only . Quick drags with less than 2px of movement per axis will be treated as clicks to aid grahics tablet users. . Mouse button 2 zooms .Po click and drag left->right to zoom in, right->left to zoom out, click once to restore zoom to 100% .Pc ; .Pc and mouse button 3 opens the menu. . .Pp Loading
src/events.c +12 −2 Original line number Diff line number Diff line Loading @@ -32,6 +32,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "events.h" #include "thumbnail.h" #define FEH_JITTER_OFFSET 2 #define FEH_JITTER_TIME 1 fehbb buttons; feh_event_handler *ev_handler[LASTEvent]; Loading Loading @@ -226,6 +229,7 @@ static void feh_event_handle_ButtonPress(XEvent * ev) D(("click offset is %d,%d\n", ev->xbutton.x, ev->xbutton.y)); winwid->click_offset_x = ev->xbutton.x - winwid->im_x; winwid->click_offset_y = ev->xbutton.y - winwid->im_y; winwid->click_start_time = time(NULL); } else if (feh_is_bb(&buttons.zoom, button, state)) { D(("Zoom Button Press event\n")); Loading Loading @@ -496,9 +500,15 @@ static void feh_event_handle_MotionNotify(XEvent * ev) winwid = winwidget_get_from_window(ev->xmotion.window); if (winwid) { if (opt.mode == MODE_NEXT) { if ((abs(winwid->click_offset_x - (ev->xmotion.x - winwid->im_x)) > FEH_JITTER_OFFSET) || (abs(winwid->click_offset_y - (ev->xmotion.y - winwid->im_y)) > FEH_JITTER_OFFSET) || (time(NULL) - winwid->click_start_time > FEH_JITTER_TIME)) { opt.mode = MODE_PAN; winwid->mode = MODE_PAN; } else return; } D(("Panning\n")); orig_x = winwid->im_x; orig_y = winwid->im_y; Loading
src/winwidget.h +1 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,7 @@ struct __winwidget { int click_offset_y; int im_click_offset_x; int im_click_offset_y; time_t click_start_time; unsigned char has_rotated; }; Loading