Merge change I7b9328c7 into eclair
* changes: Fix issue #2300232: Bugs in resolving conflicting pointers
This commit is contained in:
@@ -313,14 +313,17 @@ public class InputDevice {
|
|||||||
long bestDistance = -1;
|
long bestDistance = -1;
|
||||||
int bestIndex = -1;
|
int bestIndex = -1;
|
||||||
for (int j=0; j<lastNumPointers; j++) {
|
for (int j=0; j<lastNumPointers; j++) {
|
||||||
if (!allowOverlap && last2Next[j] < 0) {
|
// If we are not allowing multiple new points to be assigned
|
||||||
|
// to the same old pointer, then skip this one if it is already
|
||||||
|
// detected as a conflict (-2).
|
||||||
|
if (!allowOverlap && last2Next[j] < -1) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
final int jd = j * MotionEvent.NUM_SAMPLE_DATA;
|
final int jd = j * MotionEvent.NUM_SAMPLE_DATA;
|
||||||
final int xd = lastData[jd + MotionEvent.SAMPLE_X] - x1;
|
final int xd = lastData[jd + MotionEvent.SAMPLE_X] - x1;
|
||||||
final int yd = lastData[jd + MotionEvent.SAMPLE_Y] - y1;
|
final int yd = lastData[jd + MotionEvent.SAMPLE_Y] - y1;
|
||||||
final long distance = xd*(long)xd + yd*(long)yd;
|
final long distance = xd*(long)xd + yd*(long)yd;
|
||||||
if (j == 0 || distance < bestDistance) {
|
if (bestDistance == -1 || distance < bestDistance) {
|
||||||
bestDistance = distance;
|
bestDistance = distance;
|
||||||
bestIndex = j;
|
bestIndex = j;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user