Fix hung input event while resizing

In onInputEvent inplementation, the finishInputEvent needs to be called
always, to report back the input event handling result. The previous
implementation will have no call for non-dragging event and throw them
away. This caused an ANR.

Test: reproduce step in b/144141494
Test: go/wm-smoke
Bug: 144141494
Bug: 122726344
Change-Id: If6f8da87609641a62d12712aa6c97a58a06bde60
This commit is contained in:
Yunfan Chen
2019-11-14 19:41:47 -08:00
parent 63230ed87b
commit 54872c3116

View File

@@ -133,14 +133,15 @@ class TaskPositioner implements IBinder.DeathRecipient {
@Override
public void onInputEvent(InputEvent event) {
if (!(event instanceof MotionEvent)
|| (event.getSource() & InputDevice.SOURCE_CLASS_POINTER) == 0) {
return;
}
final MotionEvent motionEvent = (MotionEvent) event;
boolean handled = false;
try {
// All returns need to be in the try block to make sure the finishInputEvent is
// called correctly.
if (!(event instanceof MotionEvent)
|| (event.getSource() & InputDevice.SOURCE_CLASS_POINTER) == 0) {
return;
}
final MotionEvent motionEvent = (MotionEvent) event;
if (mDragEnded) {
// The drag has ended but the clean-up message has not been processed by
// window manager. Drop events that occur after this until window manager