OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.content.browser.accessibility; | 5 package org.chromium.content.browser.accessibility; |
6 | 6 |
7 import android.annotation.SuppressLint; | 7 import android.annotation.SuppressLint; |
8 import android.content.Context; | 8 import android.content.Context; |
9 import android.graphics.Rect; | 9 import android.graphics.Rect; |
10 import android.os.Build; | 10 import android.os.Build; |
(...skipping 812 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
823 | 823 |
824 // Offset by the location of the web content within the view. | 824 // Offset by the location of the web content within the view. |
825 rect.offset(0, | 825 rect.offset(0, |
826 (int) mRenderCoordinates.getContentOffsetYPix()); | 826 (int) mRenderCoordinates.getContentOffsetYPix()); |
827 | 827 |
828 // Finally offset by the location of the view within the screen. | 828 // Finally offset by the location of the view within the screen. |
829 final int[] viewLocation = new int[2]; | 829 final int[] viewLocation = new int[2]; |
830 mView.getLocationOnScreen(viewLocation); | 830 mView.getLocationOnScreen(viewLocation); |
831 rect.offset(viewLocation[0], viewLocation[1]); | 831 rect.offset(viewLocation[0], viewLocation[1]); |
832 | 832 |
833 // Adjust rect top & bottom coordinates based on viewport for handling s croll scenarios. | |
dmazzoni
2015/08/19 16:02:04
Typically the word "clip" is used when adjusting a
| |
834 int viewportRectTop = viewLocation[1] + (int) mRenderCoordinates.getCont entOffsetYPix(); | |
835 int viewportRectBottom = viewportRectTop + mContentViewCore.getViewportH eightPix(); | |
836 if (rect.top < viewportRectTop) rect.top = viewportRectTop; | |
837 if (rect.bottom > viewportRectBottom) rect.bottom = viewportRectBottom; | |
838 | |
833 node.setBoundsInScreen(rect); | 839 node.setBoundsInScreen(rect); |
834 | 840 |
835 // Work around a bug in the Android framework where if the object with a ccessibility | 841 // Work around a bug in the Android framework where if the object with a ccessibility |
836 // focus moves, the accessibility focus rect is not updated - both the v isual highlight, | 842 // focus moves, the accessibility focus rect is not updated - both the v isual highlight, |
837 // and the location on the screen that's clicked if you double-tap. To w ork around this, | 843 // and the location on the screen that's clicked if you double-tap. To w ork around this, |
838 // when we know the object with accessibility focus moved, move focus aw ay and then | 844 // when we know the object with accessibility focus moved, move focus aw ay and then |
839 // move focus right back to it, which tricks Android into updating its b ounds. | 845 // move focus right back to it, which tricks Android into updating its b ounds. |
840 if (virtualViewId == mAccessibilityFocusId && virtualViewId != mCurrentR ootId) { | 846 if (virtualViewId == mAccessibilityFocusId && virtualViewId != mCurrentR ootId) { |
841 if (mAccessibilityFocusRect == null) { | 847 if (mAccessibilityFocusRect == null) { |
842 mAccessibilityFocusRect = rect; | 848 mAccessibilityFocusRect = rect; |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1028 int selectionGranularity, boolean extendSelection, int id, int curso rIndex); | 1034 int selectionGranularity, boolean extendSelection, int id, int curso rIndex); |
1029 private native boolean nativeAdjustSlider( | 1035 private native boolean nativeAdjustSlider( |
1030 long nativeBrowserAccessibilityManagerAndroid, int id, boolean incre ment); | 1036 long nativeBrowserAccessibilityManagerAndroid, int id, boolean incre ment); |
1031 private native void nativeSetAccessibilityFocus( | 1037 private native void nativeSetAccessibilityFocus( |
1032 long nativeBrowserAccessibilityManagerAndroid, int id); | 1038 long nativeBrowserAccessibilityManagerAndroid, int id); |
1033 private native boolean nativeIsSlider( | 1039 private native boolean nativeIsSlider( |
1034 long nativeBrowserAccessibilityManagerAndroid, int id); | 1040 long nativeBrowserAccessibilityManagerAndroid, int id); |
1035 private native boolean nativeScroll( | 1041 private native boolean nativeScroll( |
1036 long nativeBrowserAccessibilityManagerAndroid, int id, int direction ); | 1042 long nativeBrowserAccessibilityManagerAndroid, int id, int direction ); |
1037 } | 1043 } |
OLD | NEW |