summaryrefslogtreecommitdiff
path: root/src/xterm.c
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2021-11-29 15:36:15 +0800
committerPo Lu <luangruo@yahoo.com>2021-11-29 15:37:41 +0800
commit618070d4b414c20f19a1f873ffb1d7015743599e (patch)
treef984709d4e0d906c060008b7aad45dca697dbe1e /src/xterm.c
parenta1aa9cbf57a08f1c17b92b13a2bf07d504684fcc (diff)
downloademacs-618070d4b414c20f19a1f873ffb1d7015743599e.tar.gz
emacs-618070d4b414c20f19a1f873ffb1d7015743599e.tar.bz2
emacs-618070d4b414c20f19a1f873ffb1d7015743599e.zip
Allow customizing the pixel delta of wheel events on X
* lisp/cus-start.el: Add `x-scroll-event-delta-factor'. * src/xterm.c (handle_one_xevent): Apply scroll event delta factor to wheel events with pixel data. (Vx_scroll_event_delta_factor): New user option.
Diffstat (limited to 'src/xterm.c')
-rw-r--r--src/xterm.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 253e0eb20b0..a6d9c8c7a1b 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -10045,6 +10045,9 @@ handle_one_xevent (struct x_display_info *dpyinfo,
scroll_unit = pow (FRAME_PIXEL_HEIGHT (f), 2.0 / 3.0);
+ if (FLOATP (Vx_scroll_event_delta_factor))
+ scroll_unit *= XFLOAT_DATA (Vx_scroll_event_delta_factor);
+
if (val->horizontal)
{
inev.ie.arg
@@ -15217,4 +15220,10 @@ Otherwise, a wheel event will be sent every time the mouse wheel is
moved. This option is only effective when Emacs is built with XInput
2, with Haiku windowing support, or with NS. */);
x_coalesce_scroll_events = true;
+
+ DEFVAR_LISP ("x-scroll-event-delta-factor", Vx_scroll_event_delta_factor,
+ doc: /* A scale to apply to pixel deltas reported in scroll events.
+This option is only effective when Emacs is built with XInput 2
+support. */);
+ Vx_scroll_event_delta_factor = make_float (1.0);
}