Merge "The active window for accessibility purposes can be miscomputed." into jb-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
9ea6343fa4
@@ -643,6 +643,10 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
|
|||||||
return mSecurityPolicy.mActiveWindowId;
|
return mSecurityPolicy.mActiveWindowId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void onTouchInteractionStart() {
|
||||||
|
mSecurityPolicy.onTouchInteractionStart();
|
||||||
|
}
|
||||||
|
|
||||||
void onTouchInteractionEnd() {
|
void onTouchInteractionEnd() {
|
||||||
mSecurityPolicy.onTouchInteractionEnd();
|
mSecurityPolicy.onTouchInteractionEnd();
|
||||||
}
|
}
|
||||||
@@ -2138,6 +2142,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
|
|||||||
| AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED;
|
| AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED;
|
||||||
|
|
||||||
private int mActiveWindowId;
|
private int mActiveWindowId;
|
||||||
|
private boolean mTouchInteractionInProgress;
|
||||||
|
|
||||||
private boolean canDispatchAccessibilityEvent(AccessibilityEvent event) {
|
private boolean canDispatchAccessibilityEvent(AccessibilityEvent event) {
|
||||||
final int eventType = event.getEventType();
|
final int eventType = event.getEventType();
|
||||||
@@ -2185,12 +2190,21 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
|
|||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case AccessibilityEvent.TYPE_VIEW_HOVER_ENTER: {
|
case AccessibilityEvent.TYPE_VIEW_HOVER_ENTER: {
|
||||||
mActiveWindowId = windowId;
|
// Do not allow delayed hover events to confuse us
|
||||||
|
// which the active window is.
|
||||||
|
if (mTouchInteractionInProgress) {
|
||||||
|
mActiveWindowId = windowId;
|
||||||
|
}
|
||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onTouchInteractionStart() {
|
||||||
|
mTouchInteractionInProgress = true;
|
||||||
|
}
|
||||||
|
|
||||||
public void onTouchInteractionEnd() {
|
public void onTouchInteractionEnd() {
|
||||||
|
mTouchInteractionInProgress = false;
|
||||||
// We want to set the active window to be current immediately
|
// We want to set the active window to be current immediately
|
||||||
// after the user has stopped touching the screen since if the
|
// after the user has stopped touching the screen since if the
|
||||||
// user types with the IME he should get a feedback for the
|
// user types with the IME he should get a feedback for the
|
||||||
|
|||||||
@@ -398,6 +398,7 @@ class TouchExplorer implements EventStreamTransformation {
|
|||||||
|
|
||||||
switch (event.getActionMasked()) {
|
switch (event.getActionMasked()) {
|
||||||
case MotionEvent.ACTION_DOWN:
|
case MotionEvent.ACTION_DOWN:
|
||||||
|
mAms.onTouchInteractionStart();
|
||||||
// Pre-feed the motion events to the gesture detector since we
|
// Pre-feed the motion events to the gesture detector since we
|
||||||
// have a distance slop before getting into gesture detection
|
// have a distance slop before getting into gesture detection
|
||||||
// mode and not using the points within this slop significantly
|
// mode and not using the points within this slop significantly
|
||||||
|
|||||||
Reference in New Issue
Block a user