Only set KeyEvent long press flag when repeat count equals 1.
This fixes a Gingerbread regression.
Bug: 3507021
Change-Id: I8c2acb35be718fea7e996175c1407e84315d17ef
diff --git a/services/input/InputDispatcher.cpp b/services/input/InputDispatcher.cpp
index 655b672..0606307 100644
--- a/services/input/InputDispatcher.cpp
+++ b/services/input/InputDispatcher.cpp
@@ -699,10 +699,6 @@
// mKeyRepeatState.lastKeyEntry in addition to the one we return.
entry->refCount += 1;
- if (entry->repeatCount == 1) {
- entry->flags |= AKEY_EVENT_FLAG_LONG_PRESS;
- }
-
mKeyRepeatState.nextRepeatTime = currentTime + keyRepeatDelay;
return entry;
}
@@ -752,6 +748,12 @@
resetKeyRepeatLocked();
}
+ if (entry->repeatCount == 1) {
+ entry->flags |= AKEY_EVENT_FLAG_LONG_PRESS;
+ } else {
+ entry->flags &= ~AKEY_EVENT_FLAG_LONG_PRESS;
+ }
+
entry->dispatchInProgress = true;
resetTargetsLocked();