Bug 1419292 - Scrolling not working on ALPS touchpad
Summary: Scrolling not working on ALPS touchpad
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Fedora
Classification: Fedora
Component: control-center
Version: 25
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: Control Center Maintainer
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-02-04 23:07 UTC by German Pulido
Modified: 2017-02-13 13:18 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-02-13 13:18:35 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
GNOME Bugzilla 778554 0 None None None 2017-02-13 13:18:35 UTC

Description German Pulido 2017-02-04 23:07:31 UTC
Description of problem:
Scrolling does not work on my Dell Vostro 1400 laptop, which uses an ALPS laptop. Scrolling has worked fine in this laptop always. If I go to GNOME control center -> Mouse & Touchpad and turn on "Edge Scrolling", it seems to turn on but it does not work, not even on the "Test your settings" window. If I get out of "Mouse & Touchpad" and get back in, the option is turned off again. This is how dmesg sees my touchpad:

[root@starscream ~]# dmesg | grep -i alps
[    1.857986] input: AlpsPS/2 ALPS GlidePoint as /devices/platform/i8042/serio1/input/input5
[root@starscream ~]# 



Version-Release number of selected component (if applicable):
libinput-1.6.0-2.fc25.x86_64


How reproducible:
Always

Steps to Reproduce:
1. Start the laptop
2. Try to enable Edge scrolling
3. Tes it. It does not work and it gets turned off again.

Actual results:
It does not work

Expected results:
It should work.

Additional info:

Comment 1 German Pulido 2017-02-05 13:47:34 UTC
Found the problem. It just happened that under GNOME on Wayland, the settings had enabled "Two-finger scrolling". This setting does not show under GNOME on Xorg (which is what I use). Login-in to GONME on Wayland, disabling two-finger scrolling and enabling Edge scrolling did the trick for me. There is still a bug somewhere, because this should just not happen, it should just enable the edge-scrolling and disable the two-finger scrolling, but it seems the bug is not on libinpput.

Thanks!

Comment 2 Rui Matos 2017-02-06 12:20:53 UTC
Which versions of mutter and control-center packages do you have installed? Can you still reproduce the problem with the latest versions in f25?

Comment 3 German Pulido 2017-02-06 13:57:56 UTC
AFAIK, I have the latest versions:

[gpulido@starscream ~]$ rpm -q mutter
mutter-3.22.2-3.fc25.x86_64
[gpulido@starscream ~]$ rpm -q control-center
control-center-3.22.1-2.fc25.x86_64
[gpulido@starscream ~]$

Comment 4 Rui Matos 2017-02-07 13:57:54 UTC
Ok. Please use xinput on a terminal and find out this device's id. Then, grab the output of 'xinput list-props ID' both before and after doing the change in the control center that's supposed to work but doesn't and post it all here.

Comment 5 Peter Hutterer 2017-02-08 04:07:25 UTC
or run xinput watch-props "AlpsPS/2 ALPS GlidePoint" while you're toggling the settings. That should show if the property changes (and which ones do).

Comment 6 German Pulido 2017-02-10 13:46:39 UTC
I tested and got the following results:

- Running "xinput" under Wayland:

[gpulido@starscream ~]$ xinput 
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ xwayland-pointer:13                     	id=6	[slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:13            	id=7	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ xwayland-keyboard:13                    	id=8	[slave  keyboard (3)]
[gpulido@starscream ~]$ 


- Running "xinput" under Xorg:

[gpulido@starscream ~]$ xinput
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS GlidePoint                	id=11	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Video Bus                               	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=8	[slave  keyboard (3)]
    ↳ Laptop Integrated Webcam                	id=9	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=10	[slave  keyboard (3)]
    ↳ Dell WMI hotkeys                        	id=12	[slave  keyboard (3)]
[gpulido@starscream ~]$ 


As you can see, it shows completely different devices.

Tried running "xinput watch-props "AlpsPS/2 ALPS GlidePoint"" as Peter suggested. It only worked under Xorg (Wayland does not have that device). and while running, I switched Edge Scrolling on and off, I got this:

[gpulido@starscream ~]$ xinput watch-props "AlpsPS/2 ALPS GlidePoint"
Device 'AlpsPS/2 ALPS GlidePoint':
	Device Enabled (150):	1
	Coordinate Transformation Matrix (152):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Tapping Enabled (287):	0
	libinput Tapping Enabled Default (288):	0
	libinput Tapping Drag Enabled (289):	1
	libinput Tapping Drag Enabled Default (290):	1
	libinput Tapping Drag Lock Enabled (291):	0
	libinput Tapping Drag Lock Enabled Default (292):	0
	libinput Tapping Button Mapping Enabled (293):	1, 0
	libinput Tapping Button Mapping Default (294):	1, 0
	libinput Accel Speed (295):	1.000000
	libinput Accel Speed Default (296):	0.000000
	libinput Natural Scrolling Enabled (297):	0
	libinput Natural Scrolling Enabled Default (298):	0
	libinput Send Events Modes Available (272):	1, 1
	libinput Send Events Mode Enabled (273):	0, 0
	libinput Send Events Mode Enabled Default (274):	0, 0
	libinput Left Handed Enabled (299):	0
	libinput Left Handed Enabled Default (300):	0
	libinput Scroll Methods Available (301):	0, 1, 0
	libinput Scroll Method Enabled (302):	0, 1, 0
	libinput Scroll Method Enabled Default (303):	0, 1, 0
	libinput Disable While Typing Enabled (304):	1
	libinput Disable While Typing Enabled Default (305):	1
	Device Node (275):	"/dev/input/event4"
	Device Product ID (276):	2, 8
	libinput Drag Lock Buttons (306):	<no items>
	libinput Horizontal Scroll Enabled (307):	1
Property 'libinput Scroll Method Enabled' changed.
	libinput Scroll Method Enabled (302):	0, 0, 0
Property 'libinput Scroll Method Enabled' changed.
	libinput Scroll Method Enabled (302):	0, 1, 0
Property 'libinput Scroll Method Enabled' changed.
	libinput Scroll Method Enabled (302):	0, 0, 0
Property 'libinput Scroll Method Enabled' changed.
	libinput Scroll Method Enabled (302):	0, 1, 0
^C
[gpulido@starscream ~]$ 


So, the property gets changed and it gets correctly disabled. This was done while two-finger scrolling was disabled. Then I went to GNOME on Wayland, enabled "Two-finger-scrolling", which disabled "Edge scrolling" and I returned to GNOME on Xorg. Ran the same command again, got this:


[gpulido@starscream ~]$ xinput watch-props "AlpsPS/2 ALPS GlidePoint"
Device 'AlpsPS/2 ALPS GlidePoint':
	Device Enabled (150):	1
	Coordinate Transformation Matrix (152):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Tapping Enabled (287):	0
	libinput Tapping Enabled Default (288):	0
	libinput Tapping Drag Enabled (289):	1
	libinput Tapping Drag Enabled Default (290):	1
	libinput Tapping Drag Lock Enabled (291):	0
	libinput Tapping Drag Lock Enabled Default (292):	0
	libinput Tapping Button Mapping Enabled (293):	1, 0
	libinput Tapping Button Mapping Default (294):	1, 0
	libinput Accel Speed (295):	1.000000
	libinput Accel Speed Default (296):	0.000000
	libinput Natural Scrolling Enabled (297):	0
	libinput Natural Scrolling Enabled Default (298):	0
	libinput Send Events Modes Available (272):	1, 1
	libinput Send Events Mode Enabled (273):	0, 0
	libinput Send Events Mode Enabled Default (274):	0, 0
	libinput Left Handed Enabled (299):	0
	libinput Left Handed Enabled Default (300):	0
	libinput Scroll Methods Available (301):	0, 1, 0
	libinput Scroll Method Enabled (302):	0, 0, 0
	libinput Scroll Method Enabled Default (303):	0, 1, 0
	libinput Disable While Typing Enabled (304):	1
	libinput Disable While Typing Enabled Default (305):	1
	Device Node (275):	"/dev/input/event4"
	Device Product ID (276):	2, 8
	libinput Drag Lock Buttons (306):	<no items>
	libinput Horizontal Scroll Enabled (307):	1

Property 'libinput Scroll Method Enabled' changed.
	libinput Scroll Method Enabled (302):	0, 0, 0
Property 'libinput Scroll Method Enabled' changed.
	libinput Scroll Method Enabled (302):	0, 0, 0
Property 'libinput Scroll Method Enabled' changed.
	libinput Scroll Method Enabled (302):	0, 0, 0
Property 'libinput Scroll Method Enabled' changed.
	libinput Scroll Method Enabled (302):	0, 0, 0
Property 'libinput Scroll Method Enabled' changed.
	libinput Scroll Method Enabled (302):	0, 0, 0
Property 'libinput Scroll Method Enabled' changed.
	libinput Scroll Method Enabled (302):	0, 0, 0
^C
[gpulido@starscream ~]$ 


What I see is that the property gets also changed, but the change will not stick (as the original bug explains). 

Then I went to Wayland, disabled the two-finger scrolling, returned to Xorg and the Edge-scrolling can be enabled/disabled properly again.

Additional information: I think it's useful knowing that the touchpad in this laptop does NOT support two-finger scrolling, so I do not even know why Wayland shows the option to enable/disable it.

For reference, I did this same test on a Lenovo T440s, whose touchpad does support two-finger srolling, and it does not happen, however on that laptop, Xorg also shows the option to enable/disable 2-finger-scrolling (which IMO is the reason why it works) whereas on the original Dell laptop, Xorg does not show the option of 2FS (which is correct for that laptop's hardware).

I hope having being clear, any more help I can provide, I'd be happy to.

Thanks!!

Comment 7 German Pulido 2017-02-10 13:49:10 UTC
So, it seems I missed the part where in one case, the property gets changed (0 to 1) but in the second case, it gets all the time set to 0 (does not change). Sorry about that guys.

Comment 8 Peter Hutterer 2017-02-13 06:57:24 UTC
note that xinput watch-props works in a loop, waiting for a "property changed" notify, then querying the value of the property. So if something changes the property and immediately resets it, you won't see the change. that seems to be what's happening here.

sounds like https://bugzilla.gnome.org/show_bug.cgi?id=771744, I think there was a fedora bug for it already but I can't find it right now.

Comment 9 Rui Matos 2017-02-13 13:18:35 UTC
This is a mutter bug, patch upstream.


Note You need to log in before you can comment on or make changes to this bug.