Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8094012

Lens: touch screen may give two points with same or close coordinates, resulting in a duplicate points

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P4 P4
    • 9
    • 8
    • javafx
    • Beagle Board with checkboard touch screen

      touch screen can send ghost events, some are them are very close to each other or even equal. Currently this will generate duplicate point notifications up to Java.
      It seems that we need to relate very close touch point to the same touch point by using tap radius as an example. In other words if we get say 3 points with 'distance' 3 6 7 and the tap radius 'distance' is 10 then all this points are the same point and should produce single event.
      Need to make sure we distingush between close 'true' points, like 2 fingers touching each other

      Example of event sequence (note that point 2&3 are the same)
      EV_ABS ABS_X 7608
      EV_ABS ABS_Y 4582
      EV_ABS ABS_MT_POSITION_X 7608
      EV_ABS ABS_MT_POSITION_Y 4582
      EV_ABS ABS_MT_ORIENTATION 0
      EV_ABS ABS_MT_TOUCH_MAJOR 211
      EV_ABS ABS_MT_TOUCH_MINOR 177
      EV_SYN SYN_MT_REPORT 0
      EV_ABS ABS_MT_POSITION_X 7608
      EV_ABS ABS_MT_POSITION_Y 4582
      EV_ABS ABS_MT_ORIENTATION 0
      EV_ABS ABS_MT_TOUCH_MAJOR 211
      EV_ABS ABS_MT_TOUCH_MINOR 177
      EV_SYN SYN_MT_REPORT 0
      EV_ABS ABS_MT_POSITION_X 7366
      EV_ABS ABS_MT_POSITION_Y 4261
      EV_ABS ABS_MT_ORIENTATION 0
      EV_ABS ABS_MT_TOUCH_MAJOR 847
      EV_ABS ABS_MT_TOUCH_MINOR 533
      EV_SYN SYN_MT_REPORT 0
      EV_SYN SYN_REPORT 0
      Number of touch points - pre-existing 1 new 3
      pendingTouchPointCount >= touchPointCount
      Assigning id 11 to pendingTouchIDs[2] from touchIDs[0]
      2 points are new
      Assigning id 22 to pendingTouchIDs[0]
      Assigning id 23 to pendingTouchIDs[1]
      Update mouse position from touchPoint[0] with id 22 (1014 509)
      point 1 tap radius check -> STILL
      point 2 - no match -> PRESSED
      point 3 - no match -> PRESSED
      lens_wm_notifyMultiTouchEvent() with:
      point 1 / 3 id=11 state=814, x=984 y=467
      point 2 / 3 id=22 state=811, x=1014 y=509
      point 3 / 3 id=23 state=811, x=1014 y=509

            ddhill David Hill (Inactive)
            ayavnai Assaf Yavnai (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported: