summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2021-11-13 11:09:43 +0100
committerDaniel Friesel <derf@finalrewind.org>2021-11-13 11:09:43 +0100
commit2ca6d3b5e7e1b16a33860dfa1eb81690a1140866 (patch)
tree42fc376d47f1b2ef4f717d5d5209dffe1a512f40
parent8be4f53f8b6b135128fc0b28c5a073770e2f1c90 (diff)
Add bindable button "0" for mouse movement
Useful to make feh quit (or execute actions) on mouse movement Closes #568
-rw-r--r--man/feh.pre7
-rw-r--r--src/events.c11
2 files changed, 18 insertions, 0 deletions
diff --git a/man/feh.pre b/man/feh.pre
index 419820c..0ec2613 100644
--- a/man/feh.pre
+++ b/man/feh.pre
@@ -1905,6 +1905,13 @@ section can also be bound to a button.
.
Reload current image
.
+.It 0 Ao cursor movement while not panning, zooming, or similar Ac
+.
+Does not have a default binding.
+By binding it to
+.Cm quit ,
+you can turn feh into a simple screensaver.
+.
.It 1 Ao left mouse button Ac Bq pan
.
pan the current image
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;