On 30.04.2018 08:33, Peter Hutterer wrote:
If we get an event other than a motion event we're not wobbling so we need to
reset and restart.

Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>

IMO this shouldn't matter, because if a user managed to consciously trigger an event other than movement, it would definitely take time more than the threshold in milliseconds which is used for detection.

On the other hand I imagine a broken touchpad could send a spurious event which would break a detection possibility because we reset.

---
  src/evdev-mt-touchpad.c | 7 ++++++-
  1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
index dc2ed8dc..704d238a 100644
--- a/src/evdev-mt-touchpad.c
+++ b/src/evdev-mt-touchpad.c
@@ -155,9 +155,14 @@ tp_detect_wobbling(struct tp_dispatch *tp,
        int dx, dy;
        uint64_t dtime;
- if (!(tp->queued & TOUCHPAD_EVENT_MOTION) || tp->hysteresis.enabled)
+       if (tp->hysteresis.enabled)
                return;
+ if (!(tp->queued & TOUCHPAD_EVENT_MOTION)) {
+               t->hysteresis.x_motion_history = 0;
+               return;
+       }
+
        if (t->last_point.x == 0) { /* first invocation */
                dx = 0;
                dy = 0;

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to