Fix stuck keys when released out of order. (DO NOT MERGE)
Bug: 3208156 Change-Id: I14e4d54f4912de5e2fabcd8638120623aa2d16e0
This commit is contained in:
@@ -934,7 +934,7 @@ void KeyboardInputMapper::processKey(nsecs_t when, bool down, int32_t keyCode,
|
|||||||
ssize_t keyDownIndex = findKeyDownLocked(scanCode);
|
ssize_t keyDownIndex = findKeyDownLocked(scanCode);
|
||||||
if (keyDownIndex >= 0) {
|
if (keyDownIndex >= 0) {
|
||||||
// key repeat, be sure to use same keycode as before in case of rotation
|
// key repeat, be sure to use same keycode as before in case of rotation
|
||||||
keyCode = mLocked.keyDowns.top().keyCode;
|
keyCode = mLocked.keyDowns.itemAt(keyDownIndex).keyCode;
|
||||||
} else {
|
} else {
|
||||||
// key down
|
// key down
|
||||||
mLocked.keyDowns.push();
|
mLocked.keyDowns.push();
|
||||||
@@ -949,7 +949,7 @@ void KeyboardInputMapper::processKey(nsecs_t when, bool down, int32_t keyCode,
|
|||||||
ssize_t keyDownIndex = findKeyDownLocked(scanCode);
|
ssize_t keyDownIndex = findKeyDownLocked(scanCode);
|
||||||
if (keyDownIndex >= 0) {
|
if (keyDownIndex >= 0) {
|
||||||
// key up, be sure to use same keycode as before in case of rotation
|
// key up, be sure to use same keycode as before in case of rotation
|
||||||
keyCode = mLocked.keyDowns.top().keyCode;
|
keyCode = mLocked.keyDowns.itemAt(keyDownIndex).keyCode;
|
||||||
mLocked.keyDowns.removeAt(size_t(keyDownIndex));
|
mLocked.keyDowns.removeAt(size_t(keyDownIndex));
|
||||||
} else {
|
} else {
|
||||||
// key was not actually down
|
// key was not actually down
|
||||||
|
|||||||
Reference in New Issue
Block a user