Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Apr 2021 21:05:07 +0200
From:      Ronald Klop <ronald-lists@klop.ws>
To:        Michael Gmelin <freebsd@grem.de>
Cc:        freebsd-x11@freebsd.org
Subject:   Re: (solved) Re: mouse scrolling activates back/forward in browser
Message-ID:  <dcef9454-285c-fa97-ed42-4b15b74cd77c@klop.ws>
In-Reply-To: <6FC4DD6A-188F-44C3-87EF-CF008A463FB6@grem.de>
References:  <717e4ad7-07f5-c5fa-9f16-832eb724dc48@klop.ws> <6FC4DD6A-188F-44C3-87EF-CF008A463FB6@grem.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On 4/15/21 9:11 PM, Michael Gmelin wrote:
> 
> 
>> On 15. Apr 2021, at 20:54, Ronald Klop <ronald-lists@klop.ws> wrote:
>>
>> On 4/15/21 9:53 AM, Ronald Klop wrote:
>>> Hi,
>>> When I use the scrollwheel of the mouse my browser triggers back/forward. What happens is this:
>>> If I scroll up (button 4) after scrolling down (button 5) it triggers button 8 and 9.
>>> I see it generating a ButtonPress 8/9 if I go down and than up. And a ButtonRelease 8/9 if I first go up and than down.
>>> I have no config in /etc/X11. Xorg logs: https://www.klop.ws/Xorg.0.log
>>> This happens on the trackpad of the laptop and with a bluetooth connected mouse.
>>> What makes it a little more complex is that this is running FreeBSD 14 in VirtualBox on Windows 10 with. NB: It happened in Virtualbox 5 and now in 6 also.
>>> This started around a year ago.
> 
> That’s because we switched to udev/libinput by default around that time.
> 
>>> https://lists.freebsd.org/pipermail/freebsd-ports/2020-March/117879.html But didn't have time to look into it.
>>> Any thoughts or similar experiences?
>>> Regards,
>>> Ronald.
>>
>>
>> Some more googling found this: https://forums.freebsd.org/threads/mouse-wheel-strange-behavior-with-firefox.57494/
>>
>> Just removed button 8 and 9.
>> xmodmap -e "pointer = 1 2 3 4 5 6 7 0 0 10 11 12"
>>
>> Still don't understand the root cause of this, but this helps a lot.
>>
> 
> Could you share the output of:
> - libinput list-devices


Device:           System mouse
Kernel:           /dev/input/event0
Group:            1
Seat:             seat0, default
Capabilities:     pointer
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   button
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   flat *adaptive
Rotation:         n/a

Device:           System keyboard multiplexer
Kernel:           /dev/input/event1
Group:            2
Seat:             seat0, default
Capabilities:     keyboard
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           AT keyboard
Kernel:           /dev/input/event2
Group:            3
Seat:             seat0, default
Capabilities:     keyboard
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           IntelliMouse Explorer
Kernel:           /dev/input/event3
Group:            4
Seat:             seat0, default
Capabilities:     pointer
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   button
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   flat *adaptive
Rotation:         n/a


> - xinput list


⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ System mouse                            	id=6	[slave  pointer  (2)]
⎜   ↳ IntelliMouse Explorer                   	id=9	[slave  pointer  (2)]
⎜   ↳ (unnamed)                               	id=10	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
     ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
     ↳ System keyboard multiplexer             	id=7	[slave  keyboard (3)]
     ↳ AT keyboard                             	id=8	[slave  keyboard (3)]


> 
> Then, for each mouse device shown by `xinput list', the output of `xinput list-props <device>'.



$ xinput list-props 2
Device 'Virtual core pointer':
	Device Enabled (117):	1
	Coordinate Transformation Matrix (118):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000

$ xinput list-props 4
Device 'Virtual core XTEST pointer':
	Device Enabled (117):	1
	Coordinate Transformation Matrix (118):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	XTEST Device (229):	1

$ xinput list-props 6
Device 'System mouse':
	Device Enabled (117):	1
	Coordinate Transformation Matrix (118):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Natural Scrolling Enabled (240):	0
	libinput Natural Scrolling Enabled Default (241):	0
	libinput Scroll Methods Available (242):	0, 0, 1
	libinput Scroll Method Enabled (243):	0, 0, 0
	libinput Scroll Method Enabled Default (244):	0, 0, 0
	libinput Button Scrolling Button (245):	2
	libinput Button Scrolling Button Default (246):	2
	libinput Button Scrolling Button Lock Enabled (247):	0
	libinput Button Scrolling Button Lock Enabled Default (248):	0
	libinput Middle Emulation Enabled (249):	0
	libinput Middle Emulation Enabled Default (250):	0
	libinput Accel Speed (251):	0.000000
	libinput Accel Speed Default (252):	0.000000
	libinput Accel Profiles Available (253):	1, 1
	libinput Accel Profile Enabled (254):	1, 0
	libinput Accel Profile Enabled Default (255):	1, 0
	libinput Left Handed Enabled (256):	0
	libinput Left Handed Enabled Default (257):	0
	libinput Send Events Modes Available (258):	1, 0
	libinput Send Events Mode Enabled (259):	0, 0
	libinput Send Events Mode Enabled Default (260):	0, 0
	Device Node (261):	"/dev/input/event0"
	Device Product ID (262):	0, 0
	libinput Drag Lock Buttons (263):	<no items>
	libinput Horizontal Scroll Enabled (264):	1

$ xinput list-props 9
Device 'IntelliMouse Explorer':
	Device Enabled (117):	1
	Coordinate Transformation Matrix (118):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Natural Scrolling Enabled (240):	0
	libinput Natural Scrolling Enabled Default (241):	0
	libinput Scroll Methods Available (242):	0, 0, 1
	libinput Scroll Method Enabled (243):	0, 0, 0
	libinput Scroll Method Enabled Default (244):	0, 0, 0
	libinput Button Scrolling Button (245):	2
	libinput Button Scrolling Button Default (246):	2
	libinput Button Scrolling Button Lock Enabled (247):	0
	libinput Button Scrolling Button Lock Enabled Default (248):	0
	libinput Middle Emulation Enabled (249):	0
	libinput Middle Emulation Enabled Default (250):	0
	libinput Accel Speed (251):	0.000000
	libinput Accel Speed Default (252):	0.000000
	libinput Accel Profiles Available (253):	1, 1
	libinput Accel Profile Enabled (254):	1, 0
	libinput Accel Profile Enabled Default (255):	1, 0
	libinput Left Handed Enabled (256):	0
	libinput Left Handed Enabled Default (257):	0
	libinput Send Events Modes Available (258):	1, 0
	libinput Send Events Mode Enabled (259):	0, 0
	libinput Send Events Mode Enabled Default (260):	0, 0
	Device Node (261):	"/dev/input/event3"
	Device Product ID (262):	2, 1
	libinput Drag Lock Buttons (263):	<no items>
	libinput Horizontal Scroll Enabled (264):	1

$ xinput list-props 10
Device '(unnamed)':
	Device Enabled (117):	1
	Coordinate Transformation Matrix (118):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	Device Accel Profile (236):	0
	Device Accel Constant Deceleration (237):	1.000000
	Device Accel Adaptive Deceleration (238):	1.000000
	Device Accel Velocity Scaling (239):	10.000000


> 
> (xinput run in a xterm or similar using some utf-8 locale, e.g. LANG=en_US.UTF-8).
xfce4-terminal with LANG=C.UTF-8

> 
> And just to be sure, double check which config files exist in /etc/X11 and /usr/local/etc/xorg.d.

/etc/X11 is empty
/usr/local/etc/xorg.d does not exist
/usr/local/etc/X11/xorg.conf.d/ is empty

NB: all information above is retrieved while the xmodmap setting was active. I don't know if that matters.

Regards,
Ronald.




> 
> Best,
> Michael
> 
>> Regards,
>> Ronald.
>>
>>
>>> Output of xev:
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     root 0x51d, subw 0x3200002, time 183573903, (25,45), root:(968,1279),
>>>     state 0x1000, button 5, same_screen YES
>>> LeaveNotify event, serial 38, synthetic NO, window 0x3200001,
>>>     root 0x51d, subw 0x0, time 183573903, (25,45), root:(968,1279),
>>>     mode NotifyUngrab, detail NotifyInferior, same_screen YES,
>>>     focus YES, state 0
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     root 0x51d, subw 0x3200002, time 183575432, (25,45), root:(968,1279),
>>>     state 0x0, button 5, same_screen YES
>>> EnterNotify event, serial 38, synthetic NO, window 0x3200001,
>>>     root 0x51d, subw 0x0, time 183575432, (25,45), root:(968,1279),
>>>     mode NotifyGrab, detail NotifyInferior, same_screen YES,
>>>     focus YES, state 4096
>>> KeymapNotify event, serial 38, synthetic NO, window 0x0,
>>>     keys:  29  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
>>>            0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     root 0x51d, subw 0x3200002, time 183575432, (25,45), root:(968,1279),
>>>     state 0x1000, button 5, same_screen YES
>>> LeaveNotify event, serial 38, synthetic NO, window 0x3200001,
>>>     root 0x51d, subw 0x0, time 183575432, (25,45), root:(968,1279),
>>>     mode NotifyUngrab, detail NotifyInferior, same_screen YES,
>>>     focus YES, state 0
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     root 0x51d, subw 0x3200002, time 183576483, (25,45), root:(968,1279),
>>>     state 0x0, button 4, same_screen YES
>>> EnterNotify event, serial 38, synthetic NO, window 0x3200001,
>>>     root 0x51d, subw 0x0, time 183576483, (25,45), root:(968,1279),
>>>     mode NotifyGrab, detail NotifyInferior, same_screen YES,
>>>     focus YES, state 2048
>>> KeymapNotify event, serial 38, synthetic NO, window 0x0,
>>>     keys:  29  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
>>>            0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     root 0x51d, subw 0x3200002, time 183576483, (25,45), root:(968,1279),
>>>     state 0x800, button 4, same_screen YES
>>> LeaveNotify event, serial 38, synthetic NO, window 0x3200001,
>>>     root 0x51d, subw 0x0, time 183576483, (25,45), root:(968,1279),
>>>     mode NotifyUngrab, detail NotifyInferior, same_screen YES,
>>>     focus YES, state 0
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     root 0x51d, subw 0x3200002, time 183576483, (25,45), root:(968,1279),
>>>     state 0x0, button 8, same_screen YES
>>> EnterNotify event, serial 38, synthetic NO, window 0x3200001,
>>>     root 0x51d, subw 0x0, time 183576483, (25,45), root:(968,1279),
>>>     mode NotifyGrab, detail NotifyInferior, same_screen YES,
>>>     focus YES, state 0
>>> KeymapNotify event, serial 38, synthetic NO, window 0x0,
>>>     keys:  29  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
>>>            0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
>>> $ xev | grep -i button # for a shorter list
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 5, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x1000, button 5, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 5, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x1000, button 5, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 5, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x1000, button 5, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 5, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x1000, button 5, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 4, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x800, button 4, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 8, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 9, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 4, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x800, button 4, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 4, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x800, button 4, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 4, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x800, button 4, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 4, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x800, button 4, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 4, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x800, button 4, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 4, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x800, button 4, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 5, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x1000, button 5, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 8, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 9, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 5, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x1000, button 5, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 5, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x1000, button 5, same_screen YES
>>> ButtonPress event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x0, button 5, same_screen YES
>>> ButtonRelease event, serial 38, synthetic NO, window 0x3200001,
>>>     state 0x1000, button 5, same_screen YES
>>> _______________________________________________
>>> freebsd-x11@freebsd.org mailing list
>>> https://lists.freebsd.org/mailman/listinfo/freebsd-x11
>>> To unsubscribe, send any mail to "freebsd-x11-unsubscribe@freebsd.org"
>>
>> _______________________________________________
>> freebsd-x11@freebsd.org mailing list
>> https://lists.freebsd.org/mailman/listinfo/freebsd-x11
>> To unsubscribe, send any mail to "freebsd-x11-unsubscribe@freebsd.org"
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?dcef9454-285c-fa97-ed42-4b15b74cd77c>