Hi,
On 31-07-15 01:51, Peter Hutterer wrote:
On Thu, Jul 30, 2015 at 04:34:14PM +0200, Hans de Goede wrote:
Hi,
On 30-07-15 14:31, Hans de Goede wrote:
Hi,
On 30-07-15 08:11, Peter Hutterer wrote:
Follow-up to eb146677e, if we disable 2fg scrolling on those touchpads we
should also disable gestures. The data doesn't magically become more useful.
I think we should wait with doing this until the scroll situation is more
clear, see my last comment here:
https://bugzilla.redhat.com/show_bug.cgi?id=1235175
Ok, so Benjamin has just explained what is going on here, these touchpads
report accurate single touch data in the old-style single-touch
events, and inaccurate data in the mt events when 2 fingers are down.
This means that we should disable pinch gestures, but your other
patch which switches to the single touch events already effectively
does that, as both touches (the real one and a fake one) will be
moving in the same direction, so this will never be seen as a pinch.
3 fg swipes (assuming the touchpad can report 3 fingers down) will
however work fine, since they will be reporting the movement from
the accurate single touch events, so I see no reason to disable
gestures, we should switch to a 2mm threshold for pinch / zoom
detection on these though, or better make the 4mm threshold
an alps only thing.
hmm, I'm somewhat hesitant to claim that the device supports gestures when
we know we can't do one of the two gestures we support. I think it's better
to just say that we don't do gestures on this device. Which would allow the
UI to adjust accordingly.
especially since this is just a single device at this point, and not a new
or common one (afaict) at that.
Ok, fair enough:
Reviewed-by: Hans de Goede <[email protected]>
Regards,
Hans
Cheers,
Peter
Signed-off-by: Peter Hutterer <[email protected]>
---
src/evdev-mt-touchpad-gestures.c | 6 +++++-
test/gestures.c | 8 ++++++--
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/evdev-mt-touchpad-gestures.c b/src/evdev-mt-touchpad-gestures.c
index da03c26..1482136 100644
--- a/src/evdev-mt-touchpad-gestures.c
+++ b/src/evdev-mt-touchpad-gestures.c
@@ -565,7 +565,11 @@ tp_gesture_handle_state(struct tp_dispatch *tp, uint64_t
time)
int
tp_init_gesture(struct tp_dispatch *tp)
{
- tp->gesture.enabled = true;
+ if (tp->device->model_flags & EVDEV_MODEL_JUMPING_SEMI_MT)
+ tp->gesture.enabled = false;
+ else
+ tp->gesture.enabled = true;
+
tp->gesture.twofinger_state = GESTURE_2FG_STATE_NONE;
libinput_timer_init(&tp->gesture.finger_count_switch_timer,
diff --git a/test/gestures.c b/test/gestures.c
index 3b7ba7b..9e44724 100644
--- a/test/gestures.c
+++ b/test/gestures.c
@@ -34,8 +34,12 @@ START_TEST(gestures_cap)
struct litest_device *dev = litest_current_device();
struct libinput_device *device = dev->libinput_device;
- ck_assert(libinput_device_has_capability(device,
- LIBINPUT_DEVICE_CAP_GESTURE));
+ if (litest_is_synaptics_semi_mt(dev))
+ ck_assert(!libinput_device_has_capability(device,
+ LIBINPUT_DEVICE_CAP_GESTURE));
+ else
+ ck_assert(libinput_device_has_capability(device,
+ LIBINPUT_DEVICE_CAP_GESTURE));
}
END_TEST
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel