From 47e02711d78ecac9112aa7f66e5664cdc46fb3d1 Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Sun, 31 Jul 2011 20:23:48 -0700 Subject: ACTION_HOVER_EXIT sometimes not delivered during touch exploration. 1. The code for detecting the end of a touch exploration gesture was not injecting the hover exit event upon detection of the gesture end. bug:5091758: Change-Id: I468164617d6677cd2a2a2815e1756c826d49f3a9 --- services/java/com/android/server/accessibility/TouchExplorer.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'services') diff --git a/services/java/com/android/server/accessibility/TouchExplorer.java b/services/java/com/android/server/accessibility/TouchExplorer.java index 0ad58d0..0808d5d 100644 --- a/services/java/com/android/server/accessibility/TouchExplorer.java +++ b/services/java/com/android/server/accessibility/TouchExplorer.java @@ -313,7 +313,7 @@ public class TouchExplorer implements Explorer { if (moveDelta > mTouchExplorationTapSlop) { mLastTouchExploreEvent = null; mPerformLongPressDelayed.remove(); - break; + break; } } } break; @@ -388,6 +388,11 @@ public class TouchExplorer implements Explorer { mTouchExploreGestureInProgress = false; mLastTouchExploreEvent = MotionEvent.obtain(event); sendAccessibilityEvent(TYPE_TOUCH_EXPLORATION_GESTURE_END); + final int lastAction = mPointerTracker.getLastInjectedHoverAction(); + if (lastAction != MotionEvent.ACTION_HOVER_EXIT) { + sendMotionEvent(event, MotionEvent.ACTION_HOVER_EXIT, + pointerIdBits, policyFlags); + } break; } -- cgit v1.1