summaryrefslogtreecommitdiffstats
path: root/core/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/com')
-rw-r--r--core/java/com/android/internal/widget/multiwaveview/GlowPadView.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java b/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java
index 8763df7..ec28e62 100644
--- a/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java
+++ b/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java
@@ -951,6 +951,11 @@ public class GlowPadView extends View {
if (angleMatches && (dist2(tx, ty) > snapDistance2)) {
activeTarget = i;
activeAngle = (float) -angleRad;
+ break;
+ } else if (dist2(tx, ty) > snapDistance2 &&
+ mMagneticTargets && activeTarget == -1) {
+ activeTarget = 0;
+ activeAngle = (float) -angleRad;
}
}
}
@@ -970,7 +975,6 @@ public class GlowPadView extends View {
switchToState(STATE_TRACKING, x, y);
updateGlowPosition(x, y);
}
-
if (mActiveTarget != activeTarget) {
// Defocus the old target
if (mActiveTarget != -1) {
@@ -988,7 +992,7 @@ public class GlowPadView extends View {
if (target.hasState(TargetDrawable.STATE_FOCUSED)) {
target.setState(TargetDrawable.STATE_FOCUSED);
}
- if (mMagneticTargets) {
+ if (mMagneticTargets && activeTarget <= 0) {
updateTargetPosition(activeTarget, mWaveCenterX, mWaveCenterY, activeAngle);
}
if (AccessibilityManager.getInstance(mContext).isEnabled()) {