60 lines
2.3 KiB
Diff
60 lines
2.3 KiB
Diff
From 6b59b4273c38570258519d16357dd0953b650bc8 Mon Sep 17 00:00:00 2001
|
|
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Date: Tue, 28 Jul 2015 12:54:16 +1000
|
|
Subject: [PATCH libinput] touchpad: drop distance threshold to detect pinches
|
|
|
|
This gives us too many false positives of 2fg scroll being detected as pinch
|
|
gesture. Reporter in [1] uses index+ring finger and thus exceeds the distance
|
|
easily (that's admittedly a special case).
|
|
|
|
This is worsed by the lack of a client stack that handles the gestures. User's
|
|
don't see that they're inadvertently performing a gesture, they just see 2fg
|
|
scroll not working.
|
|
|
|
Drop the distance for now, once we have a ubiquitous client stack we can
|
|
revisit and bring it back.
|
|
|
|
[1] https://bugzilla.redhat.com/show_bug.cgi?id=1246868
|
|
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
|
|
---
|
|
src/evdev-mt-touchpad-gestures.c | 17 +----------------
|
|
1 file changed, 1 insertion(+), 16 deletions(-)
|
|
|
|
diff --git a/src/evdev-mt-touchpad-gestures.c b/src/evdev-mt-touchpad-gestures.c
|
|
index 6b1a273..3b1839e 100644
|
|
--- a/src/evdev-mt-touchpad-gestures.c
|
|
+++ b/src/evdev-mt-touchpad-gestures.c
|
|
@@ -264,26 +264,11 @@ tp_gesture_twofinger_handle_state_none(struct tp_dispatch *tp, uint64_t time)
|
|
static enum tp_gesture_2fg_state
|
|
tp_gesture_twofinger_handle_state_unknown(struct tp_dispatch *tp, uint64_t time)
|
|
{
|
|
- struct normalized_coords normalized;
|
|
- struct device_float_coords delta;
|
|
struct tp_touch *first = tp->gesture.touches[0],
|
|
*second = tp->gesture.touches[1];
|
|
int dir1, dir2;
|
|
|
|
- delta = device_delta(first->point, second->point);
|
|
- normalized = tp_normalize_delta(tp, delta);
|
|
-
|
|
- /* If fingers are further than 3 cm apart assume pinch */
|
|
- if (normalized_length(normalized) > TP_MM_TO_DPI_NORMALIZED(30)) {
|
|
- tp_gesture_get_pinch_info(tp,
|
|
- &tp->gesture.initial_distance,
|
|
- &tp->gesture.angle,
|
|
- &tp->gesture.center);
|
|
- tp->gesture.prev_scale = 1.0;
|
|
- return GESTURE_2FG_STATE_PINCH;
|
|
- }
|
|
-
|
|
- /* Elif fingers have been close together for a while, scroll */
|
|
+ /* if fingers stay unmoving for a while, assume (slow) scroll */
|
|
if (time > (tp->gesture.initial_time + DEFAULT_GESTURE_2FG_SCROLL_TIMEOUT)) {
|
|
tp_gesture_set_scroll_buildup(tp);
|
|
return GESTURE_2FG_STATE_SCROLL;
|
|
--
|
|
2.4.3
|
|
|