Bug 1326071 - trackpad right-clicking difficulties on Thinkpad 450s
Summary: trackpad right-clicking difficulties on Thinkpad 450s
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Fedora
Classification: Fedora
Component: libinput
Version: 23
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Peter Hutterer
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-04-11 17:49 UTC by Greg Farnum
Modified: 2016-05-05 05:47 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-05-05 05:47:29 UTC
Type: Bug


Attachments (Terms of Use)

Description Greg Farnum 2016-04-11 17:49:03 UTC
Description of problem:
Upon initial install of Fedora 23 I couldn't find a way to right-click on my trackpad. I was unable to find settings in the operating system that might let me diagnose the issue or change the settings.
After updating to the latest version of all packages and fiddling around a lot more, I eventually discovered (by mistake!) that I could right-click in such a small zone I hadn't been able to find it. From experimentation, it looks like the zone is set in software to be the very bottom of the trackpad, about the size of a fingertip, on the right size. There is no zoning on the right side apart from that bottom section.
However, if one clicks with less than a full fingertip on the bottom, it registers as a left click. From experimentation and googling, I *think* what's going on is that the touchpad sensors don't extend quite far enough for a testing probe to get detected. So from the user's perspective there's this strip about a fingertip high they need to click in, but they only have about a quarter of a finger-tip's give before it's detected as a left-click instead.

Possible resolution: expand the zones to include a strip up the right-hand side, and make configuration options more apparent. (I was pointed at how to set up two-finger right-clicking, which is what I really wanted to begin with.)

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:
The more I look into this the less sure I am this is a bug in the drivers, rather than an RFE for gnome settings or a way to expose the settings to new users. But I was asked to create the bugzilla and here it is. :)

Comment 1 Peter Hutterer 2016-04-11 20:07:01 UTC
The link below is a description of the click methods we have on clickpads like yours.
http://wayland.freedesktop.org/libinput/doc/latest/clickpad_softbuttons.html

The zones themselves are 10mm high at the bottom of the touchpad and have a 50/50 split between left and right buttons (git master has a middle button in the center). Sometimes the touchpad ranges are off though, I'll need you to run the touchpad-edge-detector tool (as root) and attach the output here. It's part of libevdev-utils.

Comment 2 Greg Farnum 2016-04-14 00:01:29 UTC
Well this is fun. If I run it and swirl my finger around I get values very similar to the kernel defaults:

============================================================
[root@fedoragreg gregf]# touchpad-edge-detector /dev/input/by-path/platform-i8042-serio-1-event-mouse 
Touchpad SynPS/2 Synaptics TouchPad on /dev/input/by-path/platform-i8042-serio-1-event-mouse
Move one finger around the touchpad to detect the actual edges
Kernel says:	x [1266..5676], y [1096..4758]
Touchpad sends:	x [1266..5677], y [1097..4760] \^C

Touchpad size as listed by the kernel: 98x53mm
Calculate resolution as:
	x axis: 4410/<width in mm>
	y axis: 3662/<height in mm>

Suggested udev rule:
# <Laptop model description goes here>
evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvnLENOVO:bvrJBET53WW(1.18):bd09/14/2015:svnLENOVO:pn20BWS1KY00:pvrThinkPadT450s:rvnLENOVO:rn20BWS1KY00:rvrNotDefined:cvnLENOVO:ct10:cvrNone:*
 EVDEV_ABS_00=1266:5677:<x resolution>
 EVDEV_ABS_01=1097:4760:<y resolution>
 EVDEV_ABS_35=1266:5677:<x resolution>
 EVDEV_ABS_36=1097:4760:<y resolution>
============================================================

BUT. It's exceedingly difficult to get the driver (or the hardware?) to return values very close to those edges if you aren't swiping your finger towards the edge. If I tap once on each edge, as close as I can while still getting the tap detected, one example run gave me:
> Touchpad sends:	x [1370..5563], y [1233..4632] -

That dead zone is larger in the corners too, where you can click but not provide location input. :( When I'm going from "not touching" to "right-clicking", I get no location input an awful lot of the time, and am lucky to get a y-value beyond ~4550 (it's easier towards the middle of the touchpad, instead of the corner). It kind of seems like it relies on seeing your finger go off the edge of what it can sense to infer locations near those extremes.

Anyway, knowing that the right-click zone is the right half of the bottom centimeter, I can trigger it pretty reliably. It just wasn't at all clear during experimentation -- I tended to click below where the touchpad would register a location, and then jump just high enough for it to register above the right-click zone -- and nothing in the OS was telling me what to aim for. :(

Comment 3 Peter Hutterer 2016-05-05 05:34:25 UTC
(In reply to Greg Farnum from comment #2)ual edges
> Kernel says:	x [1266..5676], y [1096..4758]
> Touchpad sends:	x [1266..5677], y [1097..4760] \^C

fwiw, this is close enough that we don't have to fix it.

> BUT. It's exceedingly difficult to get the driver (or the hardware?) to
> return values very close to those edges if you aren't swiping your finger
> towards the edge. If I tap once on each edge, as close as I can while still
> getting the tap detected, one example run gave me:
> > Touchpad sends:	x [1370..5563], y [1233..4632] -
> 
> That dead zone is larger in the corners too, where you can click but not
> provide location input. :( When I'm going from "not touching" to
> "right-clicking", I get no location input an awful lot of the time, and am
> lucky to get a y-value beyond ~4550 (it's easier towards the middle of the
> touchpad, instead of the corner). It kind of seems like it relies on seeing
> your finger go off the edge of what it can sense to infer locations near
> those extremes.

are you sure? I tested this on my T450 and the main reason appears to be that it's very hard to predict where the logical center of the touch point will be when putting the finger down.

> Anyway, knowing that the right-click zone is the right half of the bottom
> centimeter, I can trigger it pretty reliably. It just wasn't at all clear
> during experimentation -- I tended to click below where the touchpad would
> register a location, and then jump just high enough for it to register above
> the right-click zone -- and nothing in the OS was telling me what to aim
> for. :(

right. this is something that we'd need some visual hint for in the gnome control center (of whatever DE you're using). Note that I think gnome was thinking about defaulting to clickfinger behaviour at some point.

Anyway, in regards to this bug - now that you know where the right button area is - what is left of this bug that we need to fix?

Comment 4 Greg Farnum 2016-05-05 05:41:05 UTC
(In reply to Peter Hutterer from comment #3)
> (In reply to Greg Farnum from comment #2)ual edges
> > Kernel says:	x [1266..5676], y [1096..4758]
> > Touchpad sends:	x [1266..5677], y [1097..4760] \^C
> 
> fwiw, this is close enough that we don't have to fix it.
> 
> > BUT. It's exceedingly difficult to get the driver (or the hardware?) to
> > return values very close to those edges if you aren't swiping your finger
> > towards the edge. If I tap once on each edge, as close as I can while still
> > getting the tap detected, one example run gave me:
> > > Touchpad sends:	x [1370..5563], y [1233..4632] -
> > 
> > That dead zone is larger in the corners too, where you can click but not
> > provide location input. :( When I'm going from "not touching" to
> > "right-clicking", I get no location input an awful lot of the time, and am
> > lucky to get a y-value beyond ~4550 (it's easier towards the middle of the
> > touchpad, instead of the corner). It kind of seems like it relies on seeing
> > your finger go off the edge of what it can sense to infer locations near
> > those extremes.
> 
> are you sure? I tested this on my T450 and the main reason appears to be
> that it's very hard to predict where the logical center of the touch point
> will be when putting the finger down.

Well, I'm just guessing based on a series of clicks and restarting that tester program, while trying to see what was working and what wasn't. So, not certain; but pretty confident, yes.

> 
> > Anyway, knowing that the right-click zone is the right half of the bottom
> > centimeter, I can trigger it pretty reliably. It just wasn't at all clear
> > during experimentation -- I tended to click below where the touchpad would
> > register a location, and then jump just high enough for it to register above
> > the right-click zone -- and nothing in the OS was telling me what to aim
> > for. :(
> 
> right. this is something that we'd need some visual hint for in the gnome
> control center (of whatever DE you're using). Note that I think gnome was
> thinking about defaulting to clickfinger behaviour at some point.
> 
> Anyway, in regards to this bug - now that you know where the right button
> area is - what is left of this bug that we need to fix?

I have solved my immediate problem. Like I said in opening the ticket, it should perhaps be considered more of an RFE/plea for some user visibility in other tools. Whatever tickles your fancy. :)

Comment 5 Peter Hutterer 2016-05-05 05:47:29 UTC
ok, in that case I'll close the bug here. Please file one with gnome/kde/wherever you want to see this change but this needs to be an upstream change first before it'll make its way into fedora.


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