Loading core/java/android/webkit/WebTextView.java +23 −10 Original line number Diff line number Diff line Loading @@ -288,6 +288,21 @@ import java.util.ArrayList; return ptr == mNodePointer; } /** * Ensure that the underlying textfield is lined up with the WebTextView. */ private void lineUpScroll() { if (mWebView != null) { float maxScrollX = Touch.getMaxScrollX(this, getLayout(), mScrollY); if (DebugFlags.WEB_TEXT_VIEW) { Log.v(LOGTAG, "onTouchEvent x=" + mScrollX + " y=" + mScrollY + " maxX=" + maxScrollX); } mWebView.scrollFocusedTextInput(maxScrollX > 0 ? mScrollX / maxScrollX : 0, mScrollY); } } @Override public InputConnection onCreateInputConnection( EditorInfo outAttrs) { InputConnection connection = super.onCreateInputConnection(outAttrs); Loading Loading @@ -358,6 +373,12 @@ import java.util.ArrayList; mFromFocusChange = false; } @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); lineUpScroll(); } @Override protected void onSelectionChanged(int selStart, int selEnd) { if (mInSetTextAndKeepSelection) return; Loading @@ -378,6 +399,7 @@ import java.util.ArrayList; + " selEnd=" + selEnd); } mWebView.setSelection(selStart, selEnd); lineUpScroll(); } } Loading Loading @@ -481,16 +503,7 @@ import java.util.ArrayList; // to big for the case of a small textfield. int smallerSlop = slop/2; if (dx > smallerSlop || dy > smallerSlop) { if (mWebView != null) { float maxScrollX = (float) Touch.getMaxScrollX(this, getLayout(), mScrollY); if (DebugFlags.WEB_TEXT_VIEW) { Log.v(LOGTAG, "onTouchEvent x=" + mScrollX + " y=" + mScrollY + " maxX=" + maxScrollX); } mWebView.scrollFocusedTextInput(maxScrollX > 0 ? mScrollX / maxScrollX : 0, mScrollY); } // Scrolling is handled in onScrollChanged. mScrolled = true; cancelLongPress(); return true; Loading Loading
core/java/android/webkit/WebTextView.java +23 −10 Original line number Diff line number Diff line Loading @@ -288,6 +288,21 @@ import java.util.ArrayList; return ptr == mNodePointer; } /** * Ensure that the underlying textfield is lined up with the WebTextView. */ private void lineUpScroll() { if (mWebView != null) { float maxScrollX = Touch.getMaxScrollX(this, getLayout(), mScrollY); if (DebugFlags.WEB_TEXT_VIEW) { Log.v(LOGTAG, "onTouchEvent x=" + mScrollX + " y=" + mScrollY + " maxX=" + maxScrollX); } mWebView.scrollFocusedTextInput(maxScrollX > 0 ? mScrollX / maxScrollX : 0, mScrollY); } } @Override public InputConnection onCreateInputConnection( EditorInfo outAttrs) { InputConnection connection = super.onCreateInputConnection(outAttrs); Loading Loading @@ -358,6 +373,12 @@ import java.util.ArrayList; mFromFocusChange = false; } @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); lineUpScroll(); } @Override protected void onSelectionChanged(int selStart, int selEnd) { if (mInSetTextAndKeepSelection) return; Loading @@ -378,6 +399,7 @@ import java.util.ArrayList; + " selEnd=" + selEnd); } mWebView.setSelection(selStart, selEnd); lineUpScroll(); } } Loading Loading @@ -481,16 +503,7 @@ import java.util.ArrayList; // to big for the case of a small textfield. int smallerSlop = slop/2; if (dx > smallerSlop || dy > smallerSlop) { if (mWebView != null) { float maxScrollX = (float) Touch.getMaxScrollX(this, getLayout(), mScrollY); if (DebugFlags.WEB_TEXT_VIEW) { Log.v(LOGTAG, "onTouchEvent x=" + mScrollX + " y=" + mScrollY + " maxX=" + maxScrollX); } mWebView.scrollFocusedTextInput(maxScrollX > 0 ? mScrollX / maxScrollX : 0, mScrollY); } // Scrolling is handled in onScrollChanged. mScrolled = true; cancelLongPress(); return true; Loading