Chromium Code Reviews| Index: content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java |
| diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java |
| index 63deca865b67ba0a772f2fce6225320f780b215b..6f4723369ce1bc00f9f45a8435c8beebc875c66f 100644 |
| --- a/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java |
| +++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java |
| @@ -248,18 +248,12 @@ public class BrowserAccessibilityManager { |
| float y = event.getY(); |
| // Convert to CSS coordinates. |
| - int cssX = (int) (mRenderCoordinates.fromPixToLocalCss(x) + |
| - mRenderCoordinates.getScrollX()); |
| - int cssY = (int) (mRenderCoordinates.fromPixToLocalCss(y) + |
| - mRenderCoordinates.getScrollY()); |
| - int id = nativeHitTest(mNativeObj, cssX, cssY); |
| - if (mLastHoverId != id) { |
| - // Always send the ENTER and then the EXIT event, to match a standard Android View. |
| - sendAccessibilityEvent(id, AccessibilityEvent.TYPE_VIEW_HOVER_ENTER); |
| - sendAccessibilityEvent(mLastHoverId, AccessibilityEvent.TYPE_VIEW_HOVER_EXIT); |
| - mLastHoverId = id; |
| - } |
| + int cssX = (int) (mRenderCoordinates.fromPixToLocalCss(x)); |
| + int cssY = (int) (mRenderCoordinates.fromPixToLocalCss(y)); |
| + // This sends an IPC to the render process to do the hit testing. |
| + // The response is handled by handleHover. |
| + nativeHitTest(mNativeObj, cssX, cssY); |
|
Peter Lundblad
2014/05/19 16:58:44
Do we get lots of these events if a user just hold
|
| return true; |
| } |
| @@ -441,6 +435,16 @@ public class BrowserAccessibilityManager { |
| } |
| @CalledByNative |
| + private void handleHover(int id) { |
| + if (mLastHoverId == id) return; |
| + |
| + // Always send the ENTER and then the EXIT event, to match a standard Android View. |
| + sendAccessibilityEvent(id, AccessibilityEvent.TYPE_VIEW_HOVER_ENTER); |
| + sendAccessibilityEvent(mLastHoverId, AccessibilityEvent.TYPE_VIEW_HOVER_EXIT); |
| + mLastHoverId = id; |
| + } |
| + |
| + @CalledByNative |
| private void announceLiveRegionText(String text) { |
| mView.announceForAccessibility(text); |
| } |
| @@ -682,7 +686,7 @@ public class BrowserAccessibilityManager { |
| private native int nativeGetRootId(long nativeBrowserAccessibilityManagerAndroid); |
| private native boolean nativeIsNodeValid(long nativeBrowserAccessibilityManagerAndroid, int id); |
| - private native int nativeHitTest(long nativeBrowserAccessibilityManagerAndroid, int x, int y); |
| + private native void nativeHitTest(long nativeBrowserAccessibilityManagerAndroid, int x, int y); |
| private native boolean nativePopulateAccessibilityNodeInfo( |
| long nativeBrowserAccessibilityManagerAndroid, AccessibilityNodeInfo info, int id); |
| private native boolean nativePopulateAccessibilityEvent( |