diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/webkit/WebView.java | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 0acd748..68c9904 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -4380,15 +4380,20 @@ public class WebView extends AbsoluteLayout } WebViewCore.CursorData cursorData() { - WebViewCore.CursorData result = new WebViewCore.CursorData(); - result.mMoveGeneration = nativeMoveGeneration(); - result.mFrame = nativeCursorFramePointer(); + WebViewCore.CursorData result = cursorDataNoPosition(); Point position = nativeCursorPosition(); result.mX = position.x; result.mY = position.y; return result; } + WebViewCore.CursorData cursorDataNoPosition() { + WebViewCore.CursorData result = new WebViewCore.CursorData(); + result.mMoveGeneration = nativeMoveGeneration(); + result.mFrame = nativeCursorFramePointer(); + return result; + } + /** * Delete text from start to end in the focused textfield. If there is no * focus, or if start == end, silently fail. If start and end are out of @@ -5588,6 +5593,18 @@ public class WebView extends AbsoluteLayout private static final int DRAG_LAYER_FINGER_DISTANCE = 20000; @Override + public boolean onHoverEvent(MotionEvent event) { + if (mNativeClass == 0) { + return false; + } + WebViewCore.CursorData data = cursorDataNoPosition(); + data.mX = viewToContentX((int) event.getX()); + data.mY = viewToContentY((int) event.getY()); + mWebViewCore.sendMessage(EventHub.SET_MOVE_MOUSE, data); + return true; + } + + @Override public boolean onTouchEvent(MotionEvent ev) { if (mNativeClass == 0 || (!isClickable() && !isLongClickable())) { return false; |