From cab2c1640d4c35c25dd186c1fc2fc052af9dd17a Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 8 Jan 2016 13:28:21 +1000 Subject: [PATCH] doc: explain the gesture ambiguity for 2-slot touchpads Not much we can do about this until we get SMBus/RMI4 in the kernel or better touchpads in general but this way we can at least point to some official explanation. Signed-off-by: Peter Hutterer --- doc/gestures.dox | 22 ++ doc/svg/gesture-2fg-ambiguity.svg | 496 ++++++++++++++++++++++++++++++ 2 files changed, 518 insertions(+) create mode 100644 doc/svg/gesture-2fg-ambiguity.svg diff --git a/doc/gestures.dox b/doc/gestures.dox index 8632b8e6..325c795b 100644 --- a/doc/gestures.dox +++ b/doc/gestures.dox @@ -104,4 +104,26 @@ software button area. libinput ignores fingers within the software button areas, the movement of the remaining fingers is thus interpreted as a two-finger scroll motion. +@section gestures_twofinger_touchpads Gestures on two-finger touchpads + +As of kernel 4.2, many @ref touchpads_touch_partial_mt provide only two +slots. This affects how gestures can be interpreted. Touchpads with only two +slots can identify two touches by position but can usually tell that there +is a third (or fourth) finger down on the touchpad - without providing +positional information for that finger. + +Touchpoints are assigned in sequential order and only the first two touch +points are trackable. For libinput this produces an ambiguity where it is +impossible to detect whether a gesture is a pinch gesture or a swipe gesture +whenever a user puts the index and middle finger down first. Since the third +finger does not have positional information, it's location cannot be +determined. + +@image html gesture-2fg-ambiguity.svg "Ambiguity of three-finger gestures on two-finger touchpads" + +The image above illustrates this ambiguity. The index and middle finger are +set down first, the data stream from both finger positions looks identical. +In this case, libinput assumes the fingers are in a horizontal arrangement +(the right image above) and use a swipe gesture. + */ diff --git a/doc/svg/gesture-2fg-ambiguity.svg b/doc/svg/gesture-2fg-ambiguity.svg new file mode 100644 index 00000000..e4996ca9 --- /dev/null +++ b/doc/svg/gesture-2fg-ambiguity.svg @@ -0,0 +1,496 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Touch 1 + + + Touch 2 + +