Loading services/inputflinger/dispatcher/InputDispatcher.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -1256,6 +1256,11 @@ bool InputDispatcher::dispatchDeviceResetLocked(nsecs_t currentTime, entry.deviceId); #endif // Reset key repeating in case a keyboard device was disabled or enabled. if (mKeyRepeatState.lastKeyEntry && mKeyRepeatState.lastKeyEntry->deviceId == entry.deviceId) { resetKeyRepeatLocked(); } CancelationOptions options(CancelationOptions::CANCEL_ALL_EVENTS, "device was reset"); options.deviceId = entry.deviceId; synthesizeCancelationEventsForAllConnectionsLocked(options); Loading services/inputflinger/tests/InputDispatcher_test.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -2858,6 +2858,16 @@ TEST_F(InputDispatcherKeyRepeatTest, FocusedWindow_KeyRepeatStopsAfterRepeatingK mWindow->assertNoEvents(); } TEST_F(InputDispatcherKeyRepeatTest, FocusedWindow_StopsKeyRepeatAfterDisableInputDevice) { sendAndConsumeKeyDown(DEVICE_ID); expectKeyRepeatOnce(1 /*repeatCount*/); NotifyDeviceResetArgs args(10 /*id*/, 20 /*eventTime*/, DEVICE_ID); mDispatcher->notifyDeviceReset(&args); mWindow->consumeKeyUp(ADISPLAY_ID_DEFAULT, AKEY_EVENT_FLAG_CANCELED | AKEY_EVENT_FLAG_LONG_PRESS); mWindow->assertNoEvents(); } TEST_F(InputDispatcherKeyRepeatTest, FocusedWindow_RepeatKeyEventsUseEventIdFromInputDispatcher) { sendAndConsumeKeyDown(1 /* deviceId */); for (int32_t repeatCount = 1; repeatCount <= 10; ++repeatCount) { Loading Loading
services/inputflinger/dispatcher/InputDispatcher.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -1256,6 +1256,11 @@ bool InputDispatcher::dispatchDeviceResetLocked(nsecs_t currentTime, entry.deviceId); #endif // Reset key repeating in case a keyboard device was disabled or enabled. if (mKeyRepeatState.lastKeyEntry && mKeyRepeatState.lastKeyEntry->deviceId == entry.deviceId) { resetKeyRepeatLocked(); } CancelationOptions options(CancelationOptions::CANCEL_ALL_EVENTS, "device was reset"); options.deviceId = entry.deviceId; synthesizeCancelationEventsForAllConnectionsLocked(options); Loading
services/inputflinger/tests/InputDispatcher_test.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -2858,6 +2858,16 @@ TEST_F(InputDispatcherKeyRepeatTest, FocusedWindow_KeyRepeatStopsAfterRepeatingK mWindow->assertNoEvents(); } TEST_F(InputDispatcherKeyRepeatTest, FocusedWindow_StopsKeyRepeatAfterDisableInputDevice) { sendAndConsumeKeyDown(DEVICE_ID); expectKeyRepeatOnce(1 /*repeatCount*/); NotifyDeviceResetArgs args(10 /*id*/, 20 /*eventTime*/, DEVICE_ID); mDispatcher->notifyDeviceReset(&args); mWindow->consumeKeyUp(ADISPLAY_ID_DEFAULT, AKEY_EVENT_FLAG_CANCELED | AKEY_EVENT_FLAG_LONG_PRESS); mWindow->assertNoEvents(); } TEST_F(InputDispatcherKeyRepeatTest, FocusedWindow_RepeatKeyEventsUseEventIdFromInputDispatcher) { sendAndConsumeKeyDown(1 /* deviceId */); for (int32_t repeatCount = 1; repeatCount <= 10; ++repeatCount) { Loading