summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jeff Brown <jeffbrown@google.com> 2011-01-14 17:24:16 -0800
committer Jeff Brown <jeffbrown@google.com> 2011-01-14 17:24:16 -0800
commit1c9d06e0470c41e2720c65be076b6080bf8595c0 (patch)
treed349bd0e1257f7118b75bd5a07e8213585de7b2b
parente76820bf413364898493f86ca6027b28d3caed2b (diff)
Fix bug with mice that send multiple BTN_MOUSE values.
Some mice send different values for BTN_MOUSE key events when the button is held down (2 for repeat, instead of 1 for down). Change-Id: I803db1f1584f50f8f5e1d37b6a715e2e1b3943a6
-rw-r--r--services/input/InputReader.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/services/input/InputReader.cpp b/services/input/InputReader.cpp
index 7a45de6fb35a..f6a8859a5e91 100644
--- a/services/input/InputReader.cpp
+++ b/services/input/InputReader.cpp
@@ -1183,10 +1183,18 @@ void CursorInputMapper::sync(nsecs_t when) {
if (downChanged) {
if (mAccumulator.btnMouse) {
- mLocked.down = true;
- mLocked.downTime = when;
+ if (!mLocked.down) {
+ mLocked.down = true;
+ mLocked.downTime = when;
+ } else {
+ downChanged = false;
+ }
} else {
- mLocked.down = false;
+ if (mLocked.down) {
+ mLocked.down = false;
+ } else {
+ downChanged = false;
+ }
}
}