* @param y New y position of the WebTextView in view coordinates
*/
/* package */ void scrollFocusedTextInputY(int y) {
- if (!inEditingMode()) {
+ if (!inEditingMode() || mWebViewCore == null) {
return;
}
- int xPos = viewToContentX((mWebTextView.getLeft() + mWebTextView.getRight()) / 2);
- int yPos = viewToContentY((mWebTextView.getTop() + mWebTextView.getBottom()) / 2);
- int layer = nativeScrollableLayer(xPos, yPos, null, null);
- if (layer != 0) {
- nativeScrollLayer(layer, 0, viewToContentDimension(y));
- }
+ mWebViewCore.sendMessage(EventHub.SCROLL_TEXT_INPUT, 0, viewToContentDimension(y));
}
/**
* @param node Pointer to the node touched.
* @param x x-position of the touch.
* @param y y-position of the touch.
- * @param scrollY Only used when touching on a textarea. Otherwise, use -1.
- * Tells how much the textarea is scrolled.
*/
private void sendMotionUp(int touchGeneration,
- int frame, int node, int x, int y, int scrollY) {
+ int frame, int node, int x, int y) {
WebViewCore.TouchUpData touchUpData = new WebViewCore.TouchUpData();
touchUpData.mMoveGeneration = touchGeneration;
touchUpData.mFrame = frame;
touchUpData.mNode = node;
touchUpData.mX = x;
touchUpData.mY = y;
- touchUpData.mScrollY = scrollY;
mWebViewCore.sendMessage(EventHub.TOUCH_UP, touchUpData);
}
private native String nativeRetrieveImageSource(int x, int y);
private native void nativeTouchUp(int touchGeneration,
- int framePtr, int nodePtr, int x, int y, int scrollY);
+ int framePtr, int nodePtr, int x, int y);
private native boolean nativeHandleTouchEvent(int action, int[] idArray,
int[] xArray, int[] yArray, int count, int metaState);
int mNode;
int mX;
int mY;
- // Used in the case of a scrolled textarea
- int mScrollY;
}
static class TouchHighlightData {
break;
case SCROLL_TEXT_INPUT:
- nativeScrollFocusedTextInput(
- ((Float) msg.obj).floatValue(), msg.arg1);
+ float xPercent;
+ if (msg.obj == null) {
+ xPercent = 0f;
+ } else {
+ xPercent = ((Float) msg.obj).floatValue();
+ }
+ nativeScrollFocusedTextInput(xPercent, msg.arg2);
break;
case LOAD_URL: {
TouchUpData touchUpData = (TouchUpData) msg.obj;
nativeTouchUp(touchUpData.mMoveGeneration,
touchUpData.mFrame, touchUpData.mNode,
- touchUpData.mX, touchUpData.mY,
- touchUpData.mScrollY);
+ touchUpData.mX, touchUpData.mY);
break;
case TOUCH_EVENT: {