-
Bug
-
Resolution: Won't Fix
-
P4
-
8
-
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
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
- relates to
-
JDK-8087759 Lens:multi touch event ID matching is not always correct
-
- Closed
-