Subject: Re: bug#57526: 29.0.50; Precise pixel-scrolling works great with touchpad but not with mouse wheel

From: Tassilo Horn <[email-masked]>
Date: Fri, 02 Sep 2022 06:57:15 +0200

Po Lu <[email-masked]> writes:

>> The reason for the difference is that the EVENTs passed to
>> pixel-scroll-precision have very different delta values.  The
>> touchpad events command emacs to scroll about 20 pixels, the mouse
>> wheel events command it to scroll 150 pixels.
>
> Try playing with pixel-scroll-precision-large-scroll-height; start
> with a value of 30, and adjust it upwards if it interferes with
> trackpad scrolling.

Oh, yes, that does the trick.  I don't actually feel much of a
difference (if any) no matter if I set it to 10 vs. 140.  It seems it
must be at least smaller as the delta in the mouse wheel events (150) in
order to have any effect but that's it.  So I went with 140.

>> I see there's some interpolation feature which might be relevant but
>> I don't get into that code path because (device-class
>> last-event-frame last-event-device) returns core-keyboard instead of
>> mouse.  I get that value in both the case where I scrolled using
>> touchpad as well as mouse.  When I typed something with the real
>> keyboard, it says just keyboard.
>
> That part of the code will be reworked soon in accordance with an
> earlier discussion, and you can assist with that by sending the result
> of running "xinput list --long", which will help determine why your
> mouse is not being recognized by Emacs.

The short list is:

--8<---------------cut here---------------start------------->8---
❯ xinput list
WARNING: running xinput against an Xwayland server. See the xinput man page for details.
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ xwayland-pointer:39                     	id=6	[slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:39            	id=7	[slave  pointer  (2)]
⎜   ↳ xwayland-pointer-gestures:39            	id=8	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ xwayland-keyboard:39                    	id=9	[slave  keyboard (3)]
--8<---------------cut here---------------end--------------->8---

Interestingly, that list is the same no matter if I plugged my mouse
into my notebook's USB slot or if it is not connected.

The long list is attached.

Bye,
Tassilo