]> git.eshelyaron.com Git - emacs.git/commitdiff
Allow customizing the pixel delta of wheel events on X
authorPo Lu <luangruo@yahoo.com>
Mon, 29 Nov 2021 07:36:15 +0000 (15:36 +0800)
committerPo Lu <luangruo@yahoo.com>
Mon, 29 Nov 2021 07:37:41 +0000 (15:37 +0800)
* 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.

lisp/cus-start.el
src/xterm.c

index 68019c038e787bf4deb42daad7f0b40dece188bf..e895ebd56921cd45c8cc6c77e403904b6748f65e 100644 (file)
@@ -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
index 253e0eb20b01829205c984801f42584c74289657..a6d9c8c7a1b0fa639051e552fffa2a634c4f50db 100644 (file)
@@ -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);
 }