1. 15 Oct, 2018 2 commits
    • Peter Hutterer's avatar
      touchpad: handle a touch ending and restarting in the same frame · 12dc64af
      Peter Hutterer authored
      If a touch ends and starts again in the same frame, our touch count gets out
      of whack. This later triggers an assertion when the tap touch count mismatches
      the real tap count.
      
      E: 0.105005 0003 0039 -001      # EV_ABS / ABS_MT_TRACKING_ID   -1
      E: 0.105005 0003 0035 8447      # EV_ABS / ABS_MT_POSITION_X    8447
      E: 0.105005 0003 0036 4479      # EV_ABS / ABS_MT_POSITION_Y    4479
      E: 0.105005 0001 014a 0000      # EV_KEY / BTN_TOUCH            0
      E: 0.105005 0001 0145 0000      # EV_KEY / BTN_TOOL_FINGER      0
      E: 0.105005 0003 0039 0074      # EV_ABS / ABS_MT_TRACKING_ID   74
      E: 0.105005 0003 0035 8388      # EV_ABS / ABS_MT_POSITION_X    8388
      E: 0.105005 0003 0036 4480      # EV_ABS / ABS_MT_POSITION_Y    4480
      E: 0.105005 0001 014a 0001      # EV_KEY / BTN_TOUCH            1
      E: 0.105005 0001 0145 0001      # EV_KEY / BTN_TOOL_FINGER      1
      E: 0.105005 0003 0000 8388      # EV_ABS / ABS_X                8388
      E: 0.105005 0003 0001 4480      # EV_ABS / ABS_Y                4480
      E: 0.105005 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +19ms
      
      This is a kernel bug but let's paper over here because otherwise we crash and
      that's considered impolite.
      
      Fixes #161
      Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      12dc64af
    • Peter Hutterer's avatar
  2. 10 Oct, 2018 1 commit
  3. 08 Oct, 2018 1 commit
  4. 04 Oct, 2018 3 commits
  5. 03 Oct, 2018 4 commits
  6. 02 Oct, 2018 2 commits
    • Peter Hutterer's avatar
      touchpad: ignore motion speed for hovering touches · a8e3f4d1
      Peter Hutterer authored
      tp_detect_thumb_while_moving() assumes that of the 2 fingers down, at least
      one must be in TOUCH_UPDATE, otherwise we wouldn't have a speed to analyze for
      thumb.
      
      If a touch starts in HOVERING and exceeds the speed limit, we were previously
      increasing the 'exceeded count'. This later leads to an assert() in
      tp_detect_thumb_while_moving() when the second finger comes down because
      although we have multiple fingers, none of them are in TOUCH_UPDATE.
      
      This only happens when fingers 2 and 3 come down in the same event frame,
      because then we have nfingers_down at 2 (the hovering one doesn't count) but
      we don't yet have a finger in TOUCH_UPDATE.
      
      Fix this twofold, first by now calculating the speed on anything but
      TOUCH_UPDATE. And second by force-resetting the speed count on
      TOUCH_BEGIN/TOUCH_END so we definitely cover all the hover transitions.
      
      Fixes #150Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      a8e3f4d1
    • Peter Hutterer's avatar
  7. 28 Sep, 2018 1 commit
  8. 27 Sep, 2018 4 commits
  9. 26 Sep, 2018 2 commits
  10. 20 Sep, 2018 4 commits
  11. 18 Sep, 2018 2 commits
  12. 17 Sep, 2018 5 commits
  13. 14 Sep, 2018 1 commit
  14. 12 Sep, 2018 2 commits
  15. 11 Sep, 2018 2 commits
  16. 10 Sep, 2018 2 commits
  17. 06 Sep, 2018 1 commit
    • Peter Hutterer's avatar
      tablet: on tip down/up, force the delta to zero · f38fae3a
      Peter Hutterer authored
      We may get a pointer jump on tip down/up, see #128. For absolute coordinates
      we reset the history to avoid smoothing across that jump but deltas still used
      to be calculated based on the previous position to the current one. This
      can result in a large jump on tip down.
      
      Since the delta is supposed to be useful (and not physically accurate, see the
      docs), let's force it to 0/0 on tip down/up to avoid that scenario.
      Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      f38fae3a
  18. 05 Sep, 2018 1 commit