From ee260612d8744993644f2e0b0f1fed51423be6db Mon Sep 17 00:00:00 2001 From: Leon Scroggins Date: Mon, 31 Jan 2011 10:53:15 -0500 Subject: [PATCH] For textareas, do not use UI side layers. Bug:3402831 Bug:3401242 Requires a change in frameworks/base. Change-Id: I4d7525cbf3a881fbe87f4bc624988fcb79cceab1 --- WebCore/rendering/RenderLayer.cpp | 3 ++- WebKit/android/jni/WebViewCore.cpp | 19 ++++++++----------- WebKit/android/jni/WebViewCore.h | 8 ++------ WebKit/android/nav/WebView.cpp | 23 +++++------------------ 4 files changed, 17 insertions(+), 36 deletions(-) diff --git a/WebCore/rendering/RenderLayer.cpp b/WebCore/rendering/RenderLayer.cpp index 478715256..e68db1e9c 100644 --- a/WebCore/rendering/RenderLayer.cpp +++ b/WebCore/rendering/RenderLayer.cpp @@ -2174,7 +2174,8 @@ RenderLayer::updateScrollInfoAfterLayout() updateOverflowStatus(horizontalOverflow, verticalOverflow); #if ENABLE(ANDROID_OVERFLOW_SCROLL) - bool hasOverflowScroll = (horizontalOverflow && m_hBar) || (verticalOverflow && m_vBar); + bool hasOverflowScroll = ((horizontalOverflow && m_hBar) || (verticalOverflow && m_vBar)) + && !renderer()->isTextArea(); if (hasOverflowScroll != m_hasOverflowScroll) { m_hasOverflowScroll = hasOverflowScroll; dirtyZOrderLists(); diff --git a/WebKit/android/jni/WebViewCore.cpp b/WebKit/android/jni/WebViewCore.cpp index ef4cf667e..c8f24792d 100644 --- a/WebKit/android/jni/WebViewCore.cpp +++ b/WebKit/android/jni/WebViewCore.cpp @@ -3100,7 +3100,7 @@ void WebViewCore::click(WebCore::Frame* frame, WebCore::Node* node, bool fake) { = static_cast( m_mainFrame->editor()->client()); client->setShouldChangeSelectedRange(false); - handleMouseClick(frame, node, fake, -1); + handleMouseClick(frame, node, fake); client->setShouldChangeSelectedRange(true); } } @@ -3179,7 +3179,7 @@ bool WebViewCore::handleTouchEvent(int action, Vector& ids, VectorisTextArea()) - static_cast(renderer)->setScrollTop(scrollY); - else - scrollLayer(renderer, &m_mousePos); + scrollLayer(renderer, &m_mousePos); } if (!valid || !framePtr) framePtr = m_mainFrame; @@ -4135,7 +4132,7 @@ static jboolean HandleTouchEvent(JNIEnv *env, jobject obj, jint action, jintArra } static void TouchUp(JNIEnv *env, jobject obj, jint touchGeneration, - jint frame, jint node, jint x, jint y, jint scrollY) + jint frame, jint node, jint x, jint y) { #ifdef ANDROID_INSTRUMENT TimeCounterAuto counter(TimeCounter::WebViewCoreTimeCounter); @@ -4143,7 +4140,7 @@ static void TouchUp(JNIEnv *env, jobject obj, jint touchGeneration, WebViewCore* viewImpl = GET_NATIVE_VIEW(env, obj); LOG_ASSERT(viewImpl, "viewImpl not set in %s", __FUNCTION__); viewImpl->touchUp(touchGeneration, - (WebCore::Frame*) frame, (WebCore::Node*) node, x, y, scrollY); + (WebCore::Frame*) frame, (WebCore::Node*) node, x, y); } static jstring RetrieveHref(JNIEnv *env, jobject obj, jint x, jint y) @@ -4557,7 +4554,7 @@ static JNINativeMethod gJavaWebViewCoreMethods[] = { (void*) FindAddress }, { "nativeHandleTouchEvent", "(I[I[I[III)Z", (void*) HandleTouchEvent }, - { "nativeTouchUp", "(IIIIII)V", + { "nativeTouchUp", "(IIIII)V", (void*) TouchUp }, { "nativeRetrieveHref", "(II)Ljava/lang/String;", (void*) RetrieveHref }, diff --git a/WebKit/android/jni/WebViewCore.h b/WebKit/android/jni/WebViewCore.h index a32ce4942..1457089b1 100644 --- a/WebKit/android/jni/WebViewCore.h +++ b/WebKit/android/jni/WebViewCore.h @@ -346,11 +346,9 @@ namespace android { * @param node Pointer to Node that was touched. * @param x x-position of the touch. * @param y y-position of the touch. - * @param scrollY Only used for