/**
@page t440_support Lenovo *40 series touchpad support
The Lenovo *40 series emulates trackstick buttons on the top part of the
touchpads.
@section t440_support_overview Overview
The Lenovo *40 series introduced a new type of touchpad. Previously, all
laptops had a separate set of physical buttons for the
trackstick. This
series removed these buttons, relying on a software emulation of the top
section of the touchpad. This is visually marked on the trackpad itself,
approximately like this:
@dot
digraph G {
subgraph cluster_0 {
margin="0";
clickpad [
shape = "record";
color = "none";
label = "{{LLLLLLLLLL|MMMMM|RRRRRRRRR}|\n\n\n\n\n\n\n\n|{LLLLLLLL| |RRRRRRRR}}";
]
}
}
@enddot
This page only covers the top software buttons, the bottom button behavior
is covered in @ref clickpad_softbuttons "Clickpad software buttons".
Clickpads with a top button area are marked with the INPUT_PROP_TOPBUTTONPAD
property.
@section t440_support_btn_size Size of the buttons
The line of the buttons is 5mm from the top edge of the touchpad,
measurements of button presses showed that the size of the buttons needs to
be approximately 10mm high to work reliable (especially when using the
thumb to press the button).
The width of the left and right buttons is approximately 42% of the
touchpad's width, the middle button is centered and should be assigned
approximately 16% of the touchpad width.
@section t440_support_btn_behavior Button behavior
Movement in the top button area does not generate pointer movement. These
buttons are not replacement buttons for the bottom button area but have
their own behavior.
Semantically attached to the trackstick device, libinput re-routes events
from these buttons to appear through the trackstick device. The top button
areas work even if the touchpad is disabled but will be disabled when the
trackstick device is disabled.
If the finger starts inside the top area and moves outside the button area
the finger is treated as dead and must be lifted to generate future buttons.
Likewise, movement into the top button area does not trigger button events, a click
has to start inside this area to take effect.
@section t440_support_identification Kernel support
The firmware on touchpads providing top software buttons is buggy and
announces wrong ranges. Kernel
patches are required; these fixes are available in kernels
3.14.1, 3.15 and later but each touchpad needs a separate fix.
For a complete list of supported touchpads check the
kernel source (search for "topbuttonpad_pnp_ids").
*/