Allow new gestures to cancel current gestures
In a previous patch, we chose to ignore new gestures whenever there's currently an active gesture. Generally this is fine to do, but there are some concerns around doing that: 1) This is different from the previous behaviour, and some tests were relying on the previous behaviour. 2) If a test injects an ACTION_DOWN event (globally) and never lifts up the pointer, this would cause all real subsequent events to be rejected. That means a bad test can cause device to get into a bad state. Rather than adding a special case to deal with 2), let's revert to the previous behaviour. Since we are now allowing the new device to take over, and only 1 device can be active at a time (for now), we must reset the touching pointers whenever we have a new gesture starting. That's because the function synthesizeCancelationEventsForAllConnectionsLocked does not modify TouchState. We should also be canceling any of the currently hovering pointers by sending an ACTION_HOVER_EXIT if a touch down occurs. This behaviour was previously inconsistent in the mouse case. Once per-device functionality is enabled, this behaviour will be revisited. Bug: 268683979 Test: m inputflinger_tests && $ANDROID_HOST_OUT/nativetest64/inputflinger_tests/inputflinger_tests Merged-In: I10c7ebde7c108baecb67a865f541253fa6e5f7ef Change-Id: I10c7ebde7c108baecb67a865f541253fa6e5f7ef (cherry picked from commit 837fab15)
Loading
Please register or sign in to comment