xf86-input-synaptics:synaptics-1.7-branch: 13 commit(s)
Peter Hutterer
whot at kemper.freedesktop.org
Wed Apr 30 21:18:30 PDT 2014
Reporting from xf86-input-synaptics: xf86-input-synaptics driver
Please visit:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics
Or get your own copy by using:
git-clone git://anongit.freedesktop.org/xorg/driver/xf86-input-synaptics
13 commits against synaptics-1.7-branch at 8577f7dc...:
conf/50-synaptics.conf | 9 -
include/synaptics-properties.h | 3
man/synaptics.man | 58 +++++++++-
src/eventcomm.c | 19 +++
src/properties.c | 51 +++++++--
src/synaptics.c | 222 ++++++++++++++++++++++++++++++-----------
src/synapticsstr.h | 24 ++++
7 files changed, 301 insertions(+), 85 deletions(-)
commit fa54c5b8fcf75531b2d6c6bb6879b3414e5c7792
Author: Hans de Goede <hdegoede at redhat.com>
Date: Tue Apr 22 18:58:11 2014 +0200
Add support for INPUT_PROP_TOPBUTTONPAD
Add a HasSecondaryButtons boolean config option which defaults to true for
devices with the INPUT_PROP_TOPBUTTONPAD and false for all other devices.
Only parse the SecondarySoftButtonAreas when this option is true, effectively
disabling the top buttons when it is false. Likewise, only initialize the
SecondarySoftButtonAreas property if we enable support for it.
This means that it is now safe to always set a SecondarySoftButtonAreas
default in 50-synaptics.conf, and that he section which was intended for
use with future pnp-id matching can be dropped, as that is now all handled
in the kernel.
While at also remove the comment about disabling the bottom edge area, as that
is now done automatically.
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Reviewed-by: Hans de Goede <hdegoede at redhat.com>
(cherry picked from commit 7bf27568417691e772e715f8fc6c30ea7ec892d6)
Conflicts:
src/eventcomm.c
diffstat:
conf/50-synaptics.conf | 9 ++++-----
man/synaptics.man | 29 +++++++++++++++++++++++------
src/eventcomm.c | 8 ++++++++
src/properties.c | 3 +++
src/synaptics.c | 7 ++++++-
src/synapticsstr.h | 1 +
6 files changed, 45 insertions(+), 12 deletions(-)
cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=fa54c5b8
commit 11b2814c17c17cc43cf1b22f56998b100e59cf04
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Mar 17 14:55:37 2014 +1000
If the touchpad is in TOUCHPAD_OFF mode, allow physical clicks
Enabling clicks in off mode also allows for the new Lenovo *40 series to use
the top software buttons while the touchpad is disabled. This benefits those
that usually disable touchpads altogether but still need the buttons for the
trackstick.
This changes existing behaviour, but TouchpadOff was always intended to stop
erroneous events while typing. Physical button presses are hard to trigger
accidentally. On the touchpads that TouchpadOff concept was originally
designed for the buttons are nowhere near the keyboard and are physically
separated from the touchpad anyway. On Clickpads, triggering a physical
click requires more force than accidentally touching the surface.
https://bugs.freedesktop.org/show_bug.cgi?id=76156
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Reviewed-by: Hans de Goede <hdegoede at redhat.com>
(cherry picked from commit dc5474964d4ec73b5c324961026e1037bb344946)
diffstat:
man/synaptics.man | 7 ++++++-
src/synaptics.c | 17 +++++++----------
2 files changed, 13 insertions(+), 11 deletions(-)
cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=fa54c5b8
commit ed84731b72692c648b48d00b84bb680446e265b6
Author: Stephen Chandler Paul <thatslyude at gmail.com>
Date: Mon Mar 10 18:33:20 2014 -0400
Don't allow any type of movement starting in the top softbutton area
Clicking in the top soft button area causes the trackpad to begin
registering motion, even if the finger never leaves the top soft button
area. We don't want this kind of behavior for the top soft button area,
since it makes clicking and dragging items much more difficult when
using a pointing stick.
Signed-off-by: Stephen Chandler Paul <thatslyude at gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
(cherry picked from commit b40a5255fe73f7f95c8ff7145dd91605f3430119)
diffstat:
src/synaptics.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=fa54c5b8
commit 8732f7b5c16aaba1df4b2429804d02c2742bdf59
Author: Stephen Chandler Paul <thatslyude at gmail.com>
Date: Mon Mar 10 18:25:20 2014 -0400
Replace is_inside_anybutton_area with current_button_area
Signed-off-by: Stephen Chandler Paul <thatslyude at gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
(cherry picked from commit 9a419ba01c53a38b4b601f4415801fca29a2b4e2)
diffstat:
src/synaptics.c | 27 ++++++++++++++++-----------
src/synapticsstr.h | 3 ++-
2 files changed, 18 insertions(+), 12 deletions(-)
cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=fa54c5b8
commit 1e08fbf8a71b5958ac1765c889b5101e62fad20f
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Mon Mar 10 09:07:59 2014 +1000
Add property support for secondary (top) software buttons
This was originally intended as a fixed xorg.conf option only (and still
largely is seen as such). Secondary software button are required only on a specific series
of touchpads and should be pre-configured by the system and/or the
distribution. As such, the property will not be initialized if it is not set
in the xorg.conf and will thus not respond to runtime changes.
Exposing the property in this way gives clients a chance of detecting if a top
software button area is present and thus adjust their behaviour accordingly.
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Reviewed-by: Hans de Goede <hdegoede at redhat.com>
(cherry picked from commit 66240dc329683f0141c1e11590ea2c3d8ca25788)
diffstat:
include/synaptics-properties.h | 3 ++
man/synaptics.man | 3 +-
src/properties.c | 48 +++++++++++++++++++++++++++++--------
src/synaptics.c | 16 ------------
src/synapticsstr.h | 16 ++++++++++++
5 files changed, 59 insertions(+), 27 deletions(-)
cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=fa54c5b8
commit eb3af31c597ed6dc1bef31f39a5f6c9d586713ae
Author: Hans de Goede <hdegoede at redhat.com>
Date: Fri Feb 21 10:31:44 2014 +0100
Wait for *new* coordinates on a clickpad click before reporting the click
It is possible for a click to get reported before any related touch events
get reported, here is the relevant part of an evemu-record session on a T440s:
E: 3.985585 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 3.997419 0003 0039 -001 # EV_ABS / ABS_MT_TRACKING_ID -1
E: 3.997419 0001 014a 0000 # EV_KEY / BTN_TOUCH 0
E: 3.997419 0003 0018 0000 # EV_ABS / ABS_PRESSURE 0
E: 3.997419 0001 0145 0000 # EV_KEY / BTN_TOOL_FINGER 0
E: 3.997419 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 5.117881 0001 0110 0001 # EV_KEY / BTN_LEFT 1
E: 5.117881 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 5.133422 0003 0039 0187 # EV_ABS / ABS_MT_TRACKING_ID 187
E: 5.133422 0003 0035 3098 # EV_ABS / ABS_MT_POSITION_X 3098
E: 5.133422 0003 0036 3282 # EV_ABS / ABS_MT_POSITION_Y 3282
E: 5.133422 0003 003a 0046 # EV_ABS / ABS_MT_PRESSURE 46
E: 5.133422 0001 014a 0001 # EV_KEY / BTN_TOUCH 1
E: 5.133422 0003 0000 3102 # EV_ABS / ABS_X 3102
E: 5.133422 0003 0001 3282 # EV_ABS / ABS_Y 3282
E: 5.133422 0003 0018 0046 # EV_ABS / ABS_PRESSURE 46
E: 5.133422 0001 0145 0001 # EV_KEY / BTN_TOOL_FINGER 1
E: 5.133422 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
Notice the BTN_LEFT event all by itself!
If this happens, it may lead to the following problem scenario:
-touch the touchpad in its right click area
-let go of the touchpad
-rapidly click in the middle area, so that BTN_LEFT gets reported before the
new coordinates (such as seen in the trace above, this may require some
practicing with evemu-record to reproduce)
-the driver registers the click as a right click because it uses the
old coordinates from the cumulative coordinates to determine the
click location
This commit fixes this by:
1) Resetting the cumulative coordinates not only when no button is pressed,
but also when there is no finger touching the touchpad, so that when
we do get a touch the cumulative coordinates start at the right place
2) Delaying processing the BTN_LEFT down transition if there is no finger
touching the touchpad
This approach has one downside, if we wrongly identify a touchpad as
a clickpad, then the left button won't work unless the user touches the
touchpad while clicking the left button.
If we want we can fix this by doing something like this:
1) Making update_hw_button_state return a delay; and
2) Tracking that we've delayed BTN_LEFT down transition processing; and
3) When we've delayed BTN_LEFT down transition return a small delay value; and
4) If when we're called again we still don't have a finger down, just
treat the click as a BTN_LEFT
But this is not worth the trouble IMHO, the proper thing to do in this
scenario is to fix the mis-identification of the touchpad as a clickpad.
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
(cherry picked from commit bbe4c56c4998a90b478581a4d93717251d8e05be)
diffstat:
src/eventcomm.c | 5 +++--
src/synaptics.c | 7 +++++++
2 files changed, 10 insertions(+), 2 deletions(-)
cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=fa54c5b8
commit ad834529c3fb63ced0ed74efb6c382d1761467c8
Author: Hans de Goede <hdegoede at redhat.com>
Date: Fri Feb 21 10:31:43 2014 +0100
On button down update cumulative to current x and y, instead of previous
When a button click and new coordinates get reported in one go we sync the
cumulative coordinates to the old x and y, rather then the newly reported ones.
This keeping of the old coordinates causes the following issue:
-touch the touchpad in its right click area
-let go of the touchpad
-rapidly click in the left click area (or middle area), so that the
new location and the click get reported in one syn (may require some
practicing with evemu-record to reproduce)
-the driver registers the click as a right click because it uses the
old coordinates from the cumulative coordinates to determine the
click location
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
(cherry picked from commit 743c45b9cfd057d00c37dab1cfca4b6202fb2642)
diffstat:
src/eventcomm.c | 6 ++++++
1 file changed, 6 insertions(+)
cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=fa54c5b8
commit db920ba696d7870b1b074ae2daff1e93a7296b99
Author: Hans de Goede <hdegoede at redhat.com>
Date: Fri Feb 21 10:31:42 2014 +0100
Ignore motion the first X ms after a clickpad click
This fixes my #1 anoyance with clickpads, where 2 out of 3 clicks turn into
a click + drag unless I hold my finger really really still.
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
Replaced property with a hardcoded 100ms. This is not something that we should
expose as property, we should find a delay that works best and live with it.
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
(cherry picked from commit 71652fe1f0800b081ba5602e9edda22a8d8d628e)
diffstat:
src/synaptics.c | 12 ++++++++++++
src/synapticsstr.h | 2 ++
2 files changed, 14 insertions(+)
cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=fa54c5b8
commit 6d6bfcbf8763d967b8f3805cfe035324aba53e77
Author: Hans de Goede <hdegoede at redhat.com>
Date: Fri Feb 21 10:31:41 2014 +0100
Don't report motion inside soft-button areas
Unless the motion has started outside the soft-button area.
Note that we must start reporting motions regardless of whether we think we're
in the button area or not as soon as we've switched to using cumulative
coordinates, since then the coordinates are no longer absolute.
This fixes the reporting of unintended motion just before a click in a soft
button area which sometimes causes mis-clicks.
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
(cherry picked from commit 3adaf4623845dce54129b6474f4f8f2966f9bc47)
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Conflicts:
src/synaptics.c
diffstat:
src/synaptics.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++-
src/synapticsstr.h | 1
2 files changed, 66 insertions(+), 1 deletion(-)
cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=fa54c5b8
commit f712eb7c41436c3f84a0d244be879c5c118788c5
Author: Hans de Goede <hdegoede at redhat.com>
Date: Fri Feb 21 10:31:40 2014 +0100
Get rid of old_hw_state
We only use it to store button state which we already have in
priv->lastButtons.
While at it also properly indent the code block checking the various
soft button areas.
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
(cherry picked from commit effeee86c1c286cd09ab750efc4932790dd560dd)
diffstat:
src/synaptics.c | 58 +++++++++++++++++++------------------------------
src/synapticsstr.h | 1
2 files changed, 23 insertions(+), 36 deletions(-)
cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=fa54c5b8
commit 59bb2aaaac728bfbf92600314782ff2db506c91e
Author: Hans de Goede <hdegoede at redhat.com>
Date: Fri Feb 21 10:31:39 2014 +0100
Add an enum for the different soft_button_areas
While at it also move the enum for the soft button edges out of
is_inside_button_area() so that it can be used elsewhere too.
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
(cherry picked from commit 840670508e0150ae11ae744c676253c7fba332dc)
diffstat:
src/synaptics.c | 35 ++++++++++++++++++++++-------------
1 file changed, 22 insertions(+), 13 deletions(-)
cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=fa54c5b8
commit 13fc982c670e992060fd33a116fbc6eb32cdba25
Author: Benjamin Tissoires <benjamin.tissoires at redhat.com>
Date: Thu Feb 20 13:13:18 2014 -0500
Add secondary (top) software buttons area
New generation of laptops with trackstick do not have physical buttons
associated with the trackstick, but instead rely on software buttons at
the top of the clickpad.
Adding a secondary software button area for this purpose.
As we're likely detecting the devices that need it based on udev tags
and MatchTag configuration items, this area doesn't need to be exposed
through properties. So static configuration is fine.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires at redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
[couple of man-page additions and rewrites]
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
(cherry picked from commit 402cc872570b58b8420e7973d0706f3b2a2aaf91)
diffstat:
man/synaptics.man | 18 ++++++++++++++++++
src/synaptics.c | 47 ++++++++++++++++++++++++++++++++++++++++-------
src/synapticsstr.h | 2 +-
3 files changed, 59 insertions(+), 8 deletions(-)
cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=fa54c5b8
commit 75b6fd13cfc0e8c8b1ca17626b5316a83359e353
Author: Hans de Goede <hdegoede at redhat.com>
Date: Wed Feb 19 18:30:35 2014 +0100
Allow using the entire touchpad for motions started inside the active area
synaptics offers an option to make parts of the touchpad insensitive. This
is ie useful to do palm avoidance rather then palm detection (which may be
unreliable) by disabling an area of 15% on the right and left side of the
touchpad.
Currently a motion which has started inside the active area, stops as soon
as it moves outside of the active area.
If a motion started inside the active area and thus has already generated some
move events, this makes no sense. If the user moves outside of the active
area in this case, this is very likely because the user wants to continue
the motion.
This commit allows such motions to continue normally.
I would like to thank Juerd Waalboer for the basic idea, some coding and lots
of testing for this fix.
Cc: Juerd Waalboer <juerd at tnx.nl>
Reported-by: Juerd Waalboer <juerd at tnx.nl>
Tested-by: Juerd Waalboer <juerd at tnx.nl>
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
(cherry picked from commit 945acfc261707be78cbc5438c22b061e20076004)
diffstat:
man/synaptics.man | 15 ++++++++-------
src/synaptics.c | 11 ++++++-----
2 files changed, 14 insertions(+), 12 deletions(-)
cgit url:
http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=fa54c5b8
More information about the xorg-commit
mailing list