From 2ca6d3b5e7e1b16a33860dfa1eb81690a1140866 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sat, 13 Nov 2021 11:09:43 +0100 Subject: Add bindable button "0" for mouse movement Useful to make feh quit (or execute actions) on mouse movement Closes #568 --- src/events.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src') diff --git a/src/events.c b/src/events.c index 5bb2ecf..81b7157 100644 --- a/src/events.c +++ b/src/events.c @@ -85,6 +85,15 @@ static void feh_set_parse_bb_partial(fehkey *button, char *binding) button->button = atoi(cur); button->state = mod; + + if (button->button == 0) { + /* + * Mod3 is unused on today's keyboards. If Mod3 is unset and button==0, + * we are dealing with an uninitialized or unset binding. If Mod3 is set + * and button==0, it refers to mouse movement. + */ + button->state |= Mod3Mask; + } } /* @@ -680,6 +689,8 @@ static void feh_event_handle_MotionNotify(XEvent * ev) y = (ev->xbutton.y - winwid->im_y) / winwid->zoom; thumbnail = feh_thumbnail_get_thumbnail_from_coords(x, y); feh_thumbnail_select(winwid, thumbnail); + } else { + feh_event_handle_generic(winwid, ev->xmotion.state | Mod3Mask, NoSymbol, 0); } } return; -- cgit v1.2.3