summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/android/nav/WebView.cpp
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2012-03-12 07:10:39 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-03-12 07:10:39 -0700
commit668a73488d6938004d25b6c155573e97b6600182 (patch)
tree4c157fb050a3a5470b2ec786ce37d4be104f0ed0 /Source/WebKit/android/nav/WebView.cpp
parentb3f4d3af0b06dc168453641e249d0cb9eec9b570 (diff)
parent730ac8198c5c9a59a2b11e54657155f3ea33d83f (diff)
downloadexternal_webkit-668a73488d6938004d25b6c155573e97b6600182.zip
external_webkit-668a73488d6938004d25b6c155573e97b6600182.tar.gz
external_webkit-668a73488d6938004d25b6c155573e97b6600182.tar.bz2
Merge "Add back auto-completion and auto-fill."
Diffstat (limited to 'Source/WebKit/android/nav/WebView.cpp')
-rw-r--r--Source/WebKit/android/nav/WebView.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/Source/WebKit/android/nav/WebView.cpp b/Source/WebKit/android/nav/WebView.cpp
index 03dd866..eddf0ab 100644
--- a/Source/WebKit/android/nav/WebView.cpp
+++ b/Source/WebKit/android/nav/WebView.cpp
@@ -616,7 +616,12 @@ int getHandleLayerId(SelectText::HandleId handleId, SkIRect& cursorRect) {
if (!selectText || !m_baseLayer)
return -1;
int layerId = selectText->caretLayerId(handleId);
- IntRect rect = selectText->caretRect(handleId);
+ cursorRect = selectText->caretRect(handleId);
+ mapLayerRect(layerId, cursorRect);
+ return layerId;
+}
+
+void mapLayerRect(int layerId, SkIRect& rect) {
if (layerId != -1) {
// We need to make sure the drawTransform is up to date as this is
// called before a draw() or drawGL()
@@ -626,8 +631,6 @@ int getHandleLayerId(SelectText::HandleId handleId, SkIRect& cursorRect) {
if (layer && layer->drawTransform())
rect = layer->drawTransform()->mapRect(rect);
}
- cursorRect.set(rect.x(), rect.y(), rect.maxX(), rect.maxY());
- return layerId;
}
bool m_isDrawingPaused;
@@ -1163,6 +1166,16 @@ static jboolean nativeIsBaseFirst(JNIEnv *env, jobject obj, jint nativeView)
return select ? select->isBaseFirst() : false;
}
+static void nativeMapLayerRect(JNIEnv *env, jobject obj, jint nativeView,
+ jint layerId, jobject rect)
+{
+ WebView* webview = reinterpret_cast<WebView*>(nativeView);
+ SkIRect nativeRect;
+ GraphicsJNI::jrect_to_irect(env, rect, &nativeRect);
+ webview->mapLayerRect(layerId, nativeRect);
+ GraphicsJNI::irect_to_jrect(nativeRect, env, rect);
+}
+
/*
* JNI registration
*/
@@ -1239,6 +1252,8 @@ static JNINativeMethod gJavaWebViewMethods[] = {
(void*) nativeGetHandleLayerId },
{ "nativeIsBaseFirst", "(I)Z",
(void*) nativeIsBaseFirst },
+ { "nativeMapLayerRect", "(IILandroid/graphics/Rect;)V",
+ (void*) nativeMapLayerRect },
};
int registerWebView(JNIEnv* env)