diff options
author | Gilles Debunne <debunne@google.com> | 2011-01-25 15:59:01 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-01-25 15:59:01 -0800 |
commit | 4df103cf3d134bc0e428656e07c43eda2687ecdb (patch) | |
tree | 0d0dc943c138a3d47dce3c979113ab92ce478135 /core | |
parent | 5c4c0d50fc1653fb6158e20d9b0af0325a80287c (diff) | |
parent | 874d77c62e0aa18116063948cd580ad0b37b4578 (diff) | |
download | frameworks_base-4df103cf3d134bc0e428656e07c43eda2687ecdb.zip frameworks_base-4df103cf3d134bc0e428656e07c43eda2687ecdb.tar.gz frameworks_base-4df103cf3d134bc0e428656e07c43eda2687ecdb.tar.bz2 |
Merge "A long press on the selection handle no longer selects the word." into honeycomb
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/widget/TextView.java | 108 |
1 files changed, 35 insertions, 73 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index ae6ecfb..fedda68 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -8596,7 +8596,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener private long mTouchTimer; private boolean mIsInsertionHandle = false; private PastePopupMenu mPastePopupWindow; - private Runnable mLongPressCallback; // Touch-up filter: number of previous positions remembered private static final int HISTORY_SIZE = 5; @@ -8839,73 +8838,49 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener @Override public boolean onTouchEvent(MotionEvent ev) { switch (ev.getActionMasked()) { - case MotionEvent.ACTION_DOWN: { - startTouchUpFilter(mController.getCurrentOffset(this)); - mDownPositionX = ev.getRawX(); - mDownPositionY = ev.getRawY(); - mTouchToWindowOffsetX = mDownPositionX - mPositionX; - mTouchToWindowOffsetY = mDownPositionY - mPositionY; - final int[] coords = mTempCoords; - TextView.this.getLocationInWindow(coords); - mLastParentX = coords[0]; - mLastParentY = coords[1]; - mIsDragging = true; - if (mIsInsertionHandle) { - mTouchTimer = SystemClock.uptimeMillis(); - if (mLongPressCallback == null) { - mLongPressCallback = new Runnable() { - public void run() { - mController.hide(); - startSelectionActionMode(); - } - }; - } - postDelayed(mLongPressCallback, ViewConfiguration.getLongPressTimeout()); + case MotionEvent.ACTION_DOWN: { + startTouchUpFilter(mController.getCurrentOffset(this)); + mDownPositionX = ev.getRawX(); + mDownPositionY = ev.getRawY(); + mTouchToWindowOffsetX = mDownPositionX - mPositionX; + mTouchToWindowOffsetY = mDownPositionY - mPositionY; + final int[] coords = mTempCoords; + TextView.this.getLocationInWindow(coords); + mLastParentX = coords[0]; + mLastParentY = coords[1]; + mIsDragging = true; + break; } - break; - } - case MotionEvent.ACTION_MOVE: { - final float rawX = ev.getRawX(); - final float rawY = ev.getRawY(); - final float newPosX = rawX - mTouchToWindowOffsetX + mHotspotX; - final float newPosY = rawY - mTouchToWindowOffsetY + mHotspotY + mTouchOffsetY; + case MotionEvent.ACTION_MOVE: { + final float rawX = ev.getRawX(); + final float rawY = ev.getRawY(); + final float newPosX = rawX - mTouchToWindowOffsetX + mHotspotX; + final float newPosY = rawY - mTouchToWindowOffsetY + mHotspotY + mTouchOffsetY; - mController.updatePosition(this, Math.round(newPosX), Math.round(newPosY)); - - if (mIsInsertionHandle) { - final float dx = rawX - mDownPositionX; - final float dy = rawY - mDownPositionY; - final float distanceSquared = dx * dx + dy * dy; - if (distanceSquared >= mSquaredTouchSlopDistance) { - removeLongPressCallback(); - } + mController.updatePosition(this, Math.round(newPosX), Math.round(newPosY)); + break; } - break; - } - case MotionEvent.ACTION_UP: - if (mIsInsertionHandle) { - removeLongPressCallback(); - long delay = SystemClock.uptimeMillis() - mTouchTimer; - if (delay < ViewConfiguration.getTapTimeout()) { - if (mPastePopupWindow != null && mPastePopupWindow.isShowing()) { - // Tapping on the handle dismisses the displayed paste view, - mPastePopupWindow.hide(); - } else { - ((InsertionPointCursorController) mController).show(0); + case MotionEvent.ACTION_UP: + if (mIsInsertionHandle) { + long delay = SystemClock.uptimeMillis() - mTouchTimer; + if (delay < ViewConfiguration.getTapTimeout()) { + if (mPastePopupWindow != null && mPastePopupWindow.isShowing()) { + // Tapping on the handle dismisses the displayed paste view, + mPastePopupWindow.hide(); + } else { + ((InsertionPointCursorController) mController).show(0); + } } } - } - filterOnTouchUp(); - mIsDragging = false; - break; + filterOnTouchUp(); + mIsDragging = false; + break; - case MotionEvent.ACTION_CANCEL: - if (mIsInsertionHandle) { - removeLongPressCallback(); - } - mIsDragging = false; + case MotionEvent.ACTION_CANCEL: + mIsDragging = false; + break; } return true; } @@ -8943,16 +8918,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener mPastePopupWindow.show(); } } - - private void removeLongPressCallback() { - if (mLongPressCallback != null) { - removeCallbacks(mLongPressCallback); - } - } - - void onDetached() { - removeLongPressCallback(); - } } private class InsertionPointCursorController implements CursorController { @@ -9079,9 +9044,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener public void onDetached() { removeHiderCallback(); removePastePopupCallback(); - if (mHandle != null) { - mHandle.onDetached(); - } } } |