diff options
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/com/android/internal/widget/multiwaveview/GlowPadView.java | 8 |
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()) { |
