am 743c0eb6: am 9ea6343f: Merge "The active window for accessibility purposes can be miscomputed." into jb-mr1-dev

* commit '743c0eb6c0e7229401ae52173cad8e6ee91a19c6':
  The active window for accessibility purposes can be miscomputed.
This commit is contained in:
Svetoslav Ganov
2012-10-10 14:20:30 -07:00
committed by Android Git Automerger
2 changed files with 16 additions and 1 deletions

View File

@@ -643,6 +643,10 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
return mSecurityPolicy.mActiveWindowId;
}
void onTouchInteractionStart() {
mSecurityPolicy.onTouchInteractionStart();
}
void onTouchInteractionEnd() {
mSecurityPolicy.onTouchInteractionEnd();
}
@@ -2138,6 +2142,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
| AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED;
private int mActiveWindowId;
private boolean mTouchInteractionInProgress;
private boolean canDispatchAccessibilityEvent(AccessibilityEvent event) {
final int eventType = event.getEventType();
@@ -2185,12 +2190,21 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
}
} break;
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;
}
}
public void onTouchInteractionStart() {
mTouchInteractionInProgress = true;
}
public void onTouchInteractionEnd() {
mTouchInteractionInProgress = false;
// We want to set the active window to be current immediately
// after the user has stopped touching the screen since if the
// user types with the IME he should get a feedback for the

View File

@@ -398,6 +398,7 @@ class TouchExplorer implements EventStreamTransformation {
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
mAms.onTouchInteractionStart();
// Pre-feed the motion events to the gesture detector since we
// have a distance slop before getting into gesture detection
// mode and not using the points within this slop significantly