From: Po Lu Date: Mon, 29 Nov 2021 07:36:15 +0000 (+0800) Subject: Allow customizing the pixel delta of wheel events on X X-Git-Tag: emacs-29.0.90~3649^2~3 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=618070d4b414c20f19a1f873ffb1d7015743599e;p=emacs.git 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. --- diff --git a/lisp/cus-start.el b/lisp/cus-start.el index 68019c038e7..e895ebd5692 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -826,6 +826,7 @@ since it could result in memory overflow and make Emacs crash." (x-underline-at-descent-line display boolean "22.1") (x-stretch-cursor display boolean "21.1") (scroll-bar-adjust-thumb-portion windows boolean "24.4") + (x-scroll-event-delta-factor mouse float "29.1") ;; xselect.c (x-select-enable-clipboard-manager killing boolean "24.1") ;; xsettings.c 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); }