Bug 1465115

Summary: Right touchpad button behaves as the left button
Product: [Fedora] Fedora Reporter: Patrick Monnerat <patrick>
Component: mate-settings-daemonAssignee: Wolfgang Ulbrich <fedora>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 25CC: aarnold, fedora, hdegoede, peter.hutterer, rdieter, stefano
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-06-28 16:39:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Patrick Monnerat 2017-06-26 17:03:21 UTC
Description of problem:
After dnf update, the right button of the touchpad behaves the same as the left button.


Version-Release number of selected component (if applicable):
mate-desktop-1.18.0-1


How reproducible:
Always, at least on an Acer Aspire V17 Nitro black edition VN7-792G.


Steps to Reproduce:
1. Login in a mate session
2. Press the right touchpad button on the desktop to get the menu: nothing happens.
3. Press it again on the NetworkManager tray icon: the network selection menu appears instead of the configuration menu.

Actual results:
As described.


Expected results:
Access to the normal right button functions.

Additional info:
- The button works properly on the lightdm login screen.
- An external USB mouse works properly in the mate session.

Comment 1 Wolfgang Ulbrich 2017-06-27 10:39:45 UTC
Hi Patrick.
Weird, i could reproduce it for a short moment with f26 and MATE-1.18, but after opening mate-mouse-properties with touchpad tab it works correctly.
Also after a session restart.
Can you try that?
In general MATE use libinput driver with 1.18 instead of old synaptics driver.
Can you check if xorg-x11-drv-libinput is installed?
Also you can safely remove xorg-x11-drv-synaptics.
Sadly, i forgot to remove xorg-x11-drv-synaptics with that update, as my laptop was updated very early to f26 (rawhide) some months ago.
But that shouldn't be the problem.

Comment 2 Patrick Monnerat 2017-06-27 13:55:28 UTC
Hi Wolfgang,
Thanks for considering it.

I'm on F25, 64bit.

> ... but after opening mate-mouse-properties with touchpad tab it works correctly.

This does not help here. I tried the 2-finger click emulation with success, but the right button is still not OK.

> Can you check if xorg-x11-drv-libinput is installed?

[root@atchoum ~]# rpm -q xorg-x11-drv-libinput
xorg-x11-drv-libinput-0.23.0-4.fc25.x86_64
[root@atchoum ~]# rpm -q xorg-x11-drv-synaptics
xorg-x11-drv-synaptics-1.9.0-1.fc25.x86_64
[root@atchoum ~]# rpm -e xorg-x11-drv-synaptics

Even after a reboot and mate-mouse-properties teasing, still not OK :-(

Comment 3 Wolfgang Ulbrich 2017-06-28 07:15:17 UTC
Ok, first some commands to debug the issue.
xinput --list  (shows you all input devices with ids)
xinput --list-props <id of your touchpad device> (shows properties and the driver which is used)

Please post or attach this here.
We need to ask libinput maintainer for help.

As a workaround you can use xorg-x11-drv-synaptics.
1) install synaptics driver
2) give them a higher priority than libinput driver, this was done with mate-settings-daemon package before 1.18 update. (Same for evdev driver for mouse)

As root do:

ln -sf /usr/share/X11/xorg.conf.d/50-synaptics.conf /etc/X11/xorg.conf.d/99-synaptics-mate.conf
ln -sf /usr/share/X11/xorg.conf.d/10-evdev.conf /etc/X11/xorg.conf.d/99-mate-evdev.conf

3) restart system

Comment 4 Patrick Monnerat 2017-06-28 07:45:22 UTC
-----------
[patrick@atchoum ~]$ xinput --list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech USB Optical Mouse              	id=10	[slave  pointer  (2)]
⎜   ↳ SYN1B7F:00 06CB:7406 Touchpad           	id=12	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Video Bus                               	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ HD WebCam                               	id=11	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=13	[slave  keyboard (3)]
    ↳ Acer WMI hotkeys                        	id=14	[slave  keyboard (3)]
[patrick@atchoum ~]$ xinput --list-props 12
Device 'SYN1B7F:00 06CB:7406 Touchpad':
	Device Enabled (138):	1
	Coordinate Transformation Matrix (140):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Tapping Enabled (293):	1
	libinput Tapping Enabled Default (294):	0
	libinput Tapping Drag Enabled (295):	1
	libinput Tapping Drag Enabled Default (296):	1
	libinput Tapping Drag Lock Enabled (297):	0
	libinput Tapping Drag Lock Enabled Default (298):	0
	libinput Tapping Button Mapping Enabled (299):	1, 0
	libinput Tapping Button Mapping Default (300):	1, 0
	libinput Accel Speed (275):	0.000000
	libinput Accel Speed Default (276):	0.000000
	libinput Natural Scrolling Enabled (280):	0
	libinput Natural Scrolling Enabled Default (281):	0
	libinput Send Events Modes Available (260):	1, 1
	libinput Send Events Mode Enabled (261):	0, 0
	libinput Send Events Mode Enabled Default (262):	0, 0
	libinput Left Handed Enabled (282):	0
	libinput Left Handed Enabled Default (283):	0
	libinput Scroll Methods Available (284):	1, 1, 0
	libinput Scroll Method Enabled (285):	1, 0, 0
	libinput Scroll Method Enabled Default (286):	1, 0, 0
	libinput Click Methods Available (301):	1, 1
	libinput Click Method Enabled (302):	0, 1
	libinput Click Method Enabled Default (303):	1, 0
	libinput Middle Emulation Enabled (289):	0
	libinput Middle Emulation Enabled Default (290):	0
	libinput Disable While Typing Enabled (304):	0
	libinput Disable While Typing Enabled Default (305):	1
	Device Node (263):	"/dev/input/event17"
	Device Product ID (264):	1739, 29702
	libinput Drag Lock Buttons (291):	<no items>
	libinput Horizontal Scroll Enabled (292):	0
[patrick@atchoum ~]$ 
----------

Your synaptics workaround is OK, thanks a lot

Comment 5 Wolfgang Ulbrich 2017-06-28 08:10:34 UTC
Hi Peter,
can you please give us some advise to debug this issue?
I've no clue to do this for myself.
With my own notebook i can't reproduce the issue.
Is this a known issue with this hardware?

We can re-asing it back to mate-settings-daemon if you think our libinput support is worse, np.

Comment 6 Peter Hutterer 2017-06-28 09:01:00 UTC
(In reply to Patrick Monnerat from comment #4)
> 	libinput Click Methods Available (301):	1, 1
> 	libinput Click Method Enabled (302):	0, 1

something enabled clickfinger behaviour here, so you don't have software
buttons. IIRC we only enable this by default on Apple devices, so I think
you may have some leftover configuration or gsettings key that enables it.

if you change the second one to 1 0, it should work as expected but you need
to find out what changes it to clickfinger to begin with.

more info on clickfinger vs software buttons:
https://wayland.freedesktop.org/libinput/doc/latest/clickpad_softbuttons.html

Comment 7 Patrick Monnerat 2017-06-28 09:43:27 UTC
Hi Peter,
Thanks for your reply.

> if you change the second one to 1 0, it should work as expected but you need
to find out what changes it to clickfinger to begin with.

I presume it's the mate settings daemon itself, but as I don't know Mate internals, I cannot do more than this supposition.

> more info on clickfinger vs software buttons
After having read this link, I think I should be more precise: clickfingers and software buttons are clicks emulation upon touchpad tapping (I'm I wrong?) In the current case, my problem is with a real hardware right button located under the bottom right corner of the touchpad, that you can really click (and not tap) by pressing it (the touchpad plate leans down/up).
After this comment, do you still think it's a clickfinger/soft button problem ?

Comment 8 Peter Hutterer 2017-06-28 10:44:52 UTC
tapping is tapping, clicking is clicking :)

clickfinger and software buttons apply to physical clicks with the whole touchpad, so what you're describing here. There is no hw right button btw, it's all a single button and the rest is magic done in software.

tapping is a short touch of the touchpad without triggering a real click.

This should do the trick, I think:

gsettings set org.mate.peripherals-touchpad three-finger-click 0 
gsettings set org.mate.peripherals-touchpad two-finger-click 0

Comment 9 Patrick Monnerat 2017-06-28 14:10:23 UTC
> ... it's all a single button and the rest is magic done in software.
Many thanks for the explanation: this was not clear before this comment.

> gsettings set org.mate.peripherals-touchpad three-finger-click 0 
> gsettings set org.mate.peripherals-touchpad two-finger-click 0

Yessss, that was it: thanks a lot :-)

In fact, the touchpad settings Mate dialog can change these values, but the labels are not very clear about the fact that it wrecks the "right button" (single finger) behavior.

To have things OK without gsettings:
System --> Preferences --> Hardware --> Mouse: In Touchpad tab, Two-finger click emulation: disabled and Three-finger click emulation : disabled.

Sorry for the noise, but this problem did not occur with the synaptics driver.

Thanks a lot again.

Comment 10 Wolfgang Ulbrich 2017-06-28 16:39:36 UTC
Thanks Peter,
with updating f25 to MATE-1.18 i forgot that a switch to libinput can make problems, because i updated my own laptop during rawhide time to f26 some months ago, when libinput support was ready in MATE.
....but now i know one possible problem :-)

Comment 11 Peter Hutterer 2017-06-29 01:43:19 UTC
(In reply to Patrick Monnerat from comment #9)
> In fact, the touchpad settings Mate dialog can change these values, but the
> labels are not very clear about the fact that it wrecks the "right button"
> (single finger) behavior.

It's a tricky problem. libinput provides either software buttons *or* clickfinger behaviour but not both at the same time. So in the implementation the option is basically: if the finger click is set to non-zero, switch to clickfinger, otherwise use software buttons.

> Sorry for the noise, but this problem did not occur with the synaptics
> driver.

yep, the synaptics driver allowed for both click methods to be enabled simultaneously. With the same GUI configuring either driver, it'll be a bit tricky making this sensible for the libinput behaviour.

Comment 12 Patrick Monnerat 2017-06-29 09:25:24 UTC
> libinput provides either software buttons *or* clickfinger behaviour but not both at the same time.
> the synaptics driver allowed for both click methods to be enabled simultaneously.

That's what I deduced from the above discussion...

@Wolfgang: Won't you think the settings dialog should be clearer about this situation ? I.E.: showing explicitly that software buttons are disabled when a x-finger click emulation is enabled. I know this is not your packager task to change the dialog, but since you are in contact with upstream, you may suggest such a clarification...

Thanks to both of you,

Comment 13 Wolfgang Ulbrich 2017-06-29 13:24:49 UTC
(In reply to Patrick Monnerat from comment #12)
> > libinput provides either software buttons *or* clickfinger behaviour but not both at the same time.
> > the synaptics driver allowed for both click methods to be enabled simultaneously.
> 
> That's what I deduced from the above discussion...
> 
> @Wolfgang: Won't you think the settings dialog should be clearer about this
> situation ? I.E.: showing explicitly that software buttons are disabled when
> a x-finger click emulation is enabled. I know this is not your packager task
> to change the dialog, but since you are in contact with upstream, you may
> suggest such a clarification...
> 
> Thanks to both of you,

Simply file out a report at upstream :-)
This will help to reduce my work overload for MATE.
Thank you

Comment 14 Wolfgang Ulbrich 2017-07-04 17:51:13 UTC
This update fixes the gsettings defaults.
https://bodhi.fedoraproject.org/updates/FEDORA-2017-8e68ed1af5