summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2020-02-27 14:46:10 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2020-03-05 16:35:53 +1000
commitcd574ed5efc06abf15df7345bc143289685d5cc1 (patch)
treedec0482d55faff0ff8f752efd6687f32d91ae609
parent7b94955634d6543222993e032942ab6acc1ec33f (diff)
downloadlibinput-cd574ed5efc06abf15df7345bc143289685d5cc1.tar.gz
touchpad: add a note to the synaptics touch restore feature
We have code in place to handle the quirky transition from two to three fingers (where one slot ends and another one starts). We do not handle the same issue when transitioning from three to two fingers. This is a note only because it hasn't mattered so far, at least until eb6ef9fe70635e7c91e from #408. And it doesn't matter anymore now either because that code is now only called for ALPS devices. https://gitlab.freedesktop.org/libinput/libinput/issues/434#note_419912 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--src/evdev-mt-touchpad.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
index a18cbeda..99880299 100644
--- a/src/evdev-mt-touchpad.c
+++ b/src/evdev-mt-touchpad.c
@@ -609,11 +609,14 @@ tp_restore_synaptics_touches(struct tp_dispatch *tp,
(tp->nfingers_down == tp->num_slots && nfake_touches == tp->num_slots))
return;
- /* Synaptics devices may end touch 2 on BTN_TOOL_TRIPLETAP
- * and start it again on the next frame with different coordinates
- * (#91352). We search the touches we have, if there is one that has
- * just ended despite us being on tripletap, we move it back to
- * update.
+ /* Synaptics devices may end touch 2 on transition to/fro
+ * BTN_TOOL_TRIPLETAP and start it again on the next frame with
+ * different coordinates (bz#91352, gitlab#434). We search the
+ * touches we have, if there is one that has just ended despite us
+ * being on tripletap, we move it back to update.
+ *
+ * Note: we only handle the transition from 2 to 3 touches, not the
+ * other way round (see gitlab#434)
*/
for (i = 0; i < tp->num_slots; i++) {
struct tp_touch *t = tp_get_touch(tp, i);