Loading core/java/android/widget/TextView.java +23 −12 Original line number Diff line number Diff line Loading @@ -5761,18 +5761,25 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } private void convertFromViewportToContentCoordinates(Rect r) { int paddingTop = getExtendedPaddingTop(); if ((mGravity & Gravity.VERTICAL_GRAVITY_MASK) != Gravity.TOP) { paddingTop += getVerticalOffset(false); final int horizontalOffset = viewportToContentHorizontalOffset(); r.left += horizontalOffset; r.right += horizontalOffset; final int verticalOffset = viewportToContentVerticalOffset(); r.top += verticalOffset; r.bottom += verticalOffset; } r.top += paddingTop; r.bottom += paddingTop; int paddingLeft = getCompoundPaddingLeft(); r.left += paddingLeft; r.right += paddingLeft; private int viewportToContentHorizontalOffset() { return getCompoundPaddingLeft() - mScrollX; } r.offset(-mScrollX, -mScrollY); private int viewportToContentVerticalOffset() { int offset = getExtendedPaddingTop() - mScrollY; if ((mGravity & Gravity.VERTICAL_GRAVITY_MASK) != Gravity.TOP) { offset += getVerticalOffset(false); } return offset; } @Override Loading Loading @@ -7651,9 +7658,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener bounds.right = bounds.left + drawableWidth; bounds.bottom = bounds.top + drawableHeight; int boundTopBefore = bounds.top; convertFromViewportToContentCoordinates(bounds); mHotSpotVerticalPosition += bounds.top - boundTopBefore; mDrawable.setBounds(bounds); postInvalidate(); } Loading Loading @@ -7797,6 +7802,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener mOffsetX = (bounds.left + bounds.right) / 2.0f - x; mOffsetY = mHandle.mHotSpotVerticalPosition - y; mOffsetX += viewportToContentHorizontalOffset(); mOffsetY += viewportToContentVerticalOffset(); mOnDownTimerStart = event.getEventTime(); } break; Loading Loading @@ -7986,6 +7994,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener mOffsetX = (bounds.left + bounds.right) / 2.0f - x; mOffsetY = draggedHandle.mHotSpotVerticalPosition - y; mOffsetX += viewportToContentHorizontalOffset(); mOffsetY += viewportToContentVerticalOffset(); mOnDownTimerStart = event.getEventTime(); ((ArrowKeyMovementMethod)mMovement).setCursorController(this); } Loading Loading
core/java/android/widget/TextView.java +23 −12 Original line number Diff line number Diff line Loading @@ -5761,18 +5761,25 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } private void convertFromViewportToContentCoordinates(Rect r) { int paddingTop = getExtendedPaddingTop(); if ((mGravity & Gravity.VERTICAL_GRAVITY_MASK) != Gravity.TOP) { paddingTop += getVerticalOffset(false); final int horizontalOffset = viewportToContentHorizontalOffset(); r.left += horizontalOffset; r.right += horizontalOffset; final int verticalOffset = viewportToContentVerticalOffset(); r.top += verticalOffset; r.bottom += verticalOffset; } r.top += paddingTop; r.bottom += paddingTop; int paddingLeft = getCompoundPaddingLeft(); r.left += paddingLeft; r.right += paddingLeft; private int viewportToContentHorizontalOffset() { return getCompoundPaddingLeft() - mScrollX; } r.offset(-mScrollX, -mScrollY); private int viewportToContentVerticalOffset() { int offset = getExtendedPaddingTop() - mScrollY; if ((mGravity & Gravity.VERTICAL_GRAVITY_MASK) != Gravity.TOP) { offset += getVerticalOffset(false); } return offset; } @Override Loading Loading @@ -7651,9 +7658,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener bounds.right = bounds.left + drawableWidth; bounds.bottom = bounds.top + drawableHeight; int boundTopBefore = bounds.top; convertFromViewportToContentCoordinates(bounds); mHotSpotVerticalPosition += bounds.top - boundTopBefore; mDrawable.setBounds(bounds); postInvalidate(); } Loading Loading @@ -7797,6 +7802,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener mOffsetX = (bounds.left + bounds.right) / 2.0f - x; mOffsetY = mHandle.mHotSpotVerticalPosition - y; mOffsetX += viewportToContentHorizontalOffset(); mOffsetY += viewportToContentVerticalOffset(); mOnDownTimerStart = event.getEventTime(); } break; Loading Loading @@ -7986,6 +7994,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener mOffsetX = (bounds.left + bounds.right) / 2.0f - x; mOffsetY = draggedHandle.mHotSpotVerticalPosition - y; mOffsetX += viewportToContentHorizontalOffset(); mOffsetY += viewportToContentVerticalOffset(); mOnDownTimerStart = event.getEventTime(); ((ArrowKeyMovementMethod)mMovement).setCursorController(this); } Loading