summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/android/jni
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/android/jni')
-rw-r--r--Source/WebKit/android/jni/AndroidHitTestResult.cpp5
-rw-r--r--Source/WebKit/android/jni/WebViewCore.cpp10
2 files changed, 10 insertions, 5 deletions
diff --git a/Source/WebKit/android/jni/AndroidHitTestResult.cpp b/Source/WebKit/android/jni/AndroidHitTestResult.cpp
index bd3f458..f5dcc48 100644
--- a/Source/WebKit/android/jni/AndroidHitTestResult.cpp
+++ b/Source/WebKit/android/jni/AndroidHitTestResult.cpp
@@ -29,6 +29,7 @@
#include "AndroidHitTestResult.h"
#include "content/address_detector.h"
+#include "content/PhoneEmailDetector.h"
#include "android/WebHitTestInfo.h"
#include "Document.h"
#include "Element.h"
@@ -149,8 +150,12 @@ void AndroidHitTestResult::buildHighlightRects()
void AndroidHitTestResult::searchContentDetectors()
{
AddressDetector address;
+ PhoneEmailDetector phoneEmail;
WebKit::WebHitTestInfo webHitTest(m_hitTestResult);
m_searchResult = address.FindTappedContent(webHitTest);
+ if (!m_searchResult.valid) {
+ m_searchResult = phoneEmail.FindTappedContent(webHitTest);
+ }
if (m_searchResult.valid) {
m_highlightRects.clear();
RefPtr<Range> range = (PassRefPtr<Range>) m_searchResult.range;
diff --git a/Source/WebKit/android/jni/WebViewCore.cpp b/Source/WebKit/android/jni/WebViewCore.cpp
index 08ad3b6..d10a7e9 100644
--- a/Source/WebKit/android/jni/WebViewCore.cpp
+++ b/Source/WebKit/android/jni/WebViewCore.cpp
@@ -3942,14 +3942,14 @@ void WebViewCore::updateTextSelection()
AutoJObject javaObject = m_javaGlue->object(env);
if (!javaObject.get())
return;
- WebCore::Node* focusNode = currentFocus();
+ VisibleSelection selection = focusedFrame()->selection()->selection();
int start = 0;
int end = 0;
- if (focusNode)
- getSelectionOffsets(focusNode, start, end);
- SelectText* selectText = createSelectText(focusedFrame()->selection()->selection());
+ if (selection.isCaretOrRange())
+ getSelectionOffsets(selection.start().anchorNode(), start, end);
+ SelectText* selectText = createSelectText(selection);
env->CallVoidMethod(javaObject.get(),
- m_javaGlue->m_updateTextSelection, reinterpret_cast<int>(focusNode),
+ m_javaGlue->m_updateTextSelection, reinterpret_cast<int>(currentFocus()),
start, end, m_textGeneration, reinterpret_cast<int>(selectText));
checkException(env);
}