summaryrefslogtreecommitdiffstats
path: root/services/input
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2011-06-29 21:19:05 -0700
committerJeff Brown <jeffbrown@google.com>2011-06-29 21:19:05 -0700
commit2e45fb6f951d0e0c68d4211fe68108d2230814bc (patch)
tree1219299e2e1d4ea119dc1f244e19d04adfd6995b /services/input
parent6d18419a3c4a37213737d6372930b720b566b70e (diff)
downloadframeworks_base-2e45fb6f951d0e0c68d4211fe68108d2230814bc.zip
frameworks_base-2e45fb6f951d0e0c68d4211fe68108d2230814bc.tar.gz
frameworks_base-2e45fb6f951d0e0c68d4211fe68108d2230814bc.tar.bz2
Fix joystick and trackpad regression.
Change-Id: I33b6756f95a6b0725ffa210f341da3c98426491b
Diffstat (limited to 'services/input')
-rw-r--r--services/input/InputDispatcher.cpp6
-rw-r--r--services/input/InputReader.cpp2
2 files changed, 7 insertions, 1 deletions
diff --git a/services/input/InputDispatcher.cpp b/services/input/InputDispatcher.cpp
index b9029a7..85ce38a 100644
--- a/services/input/InputDispatcher.cpp
+++ b/services/input/InputDispatcher.cpp
@@ -4279,6 +4279,12 @@ bool InputDispatcher::InputState::trackMotion(const MotionEntry* entry,
memento.setPointers(entry);
return true;
}
+ if (actionMasked == AMOTION_EVENT_ACTION_MOVE
+ && (entry->source & (AINPUT_SOURCE_CLASS_JOYSTICK
+ | AINPUT_SOURCE_CLASS_NAVIGATION))) {
+ // Joysticks and trackballs can send MOVE events without corresponding DOWN or UP.
+ return true;
+ }
#if DEBUG_OUTBOUND_EVENT_DETAILS
LOGD("Dropping inconsistent motion pointer up/down or move event: "
"deviceId=%d, source=%08x, actionMasked=%d",
diff --git a/services/input/InputReader.cpp b/services/input/InputReader.cpp
index 014f962..82c3af3 100644
--- a/services/input/InputReader.cpp
+++ b/services/input/InputReader.cpp
@@ -922,7 +922,7 @@ void InputDevice::process(const RawEvent* rawEvents, size_t count) {
for (const RawEvent* rawEvent = rawEvents; count--; rawEvent++) {
#if DEBUG_RAW_EVENTS
LOGD("Input event: device=%d type=0x%04x scancode=0x%04x "
- "keycode=0x%04x value=0x%04x flags=0x%08x",
+ "keycode=0x%04x value=0x%08x flags=0x%08x",
rawEvent->deviceId, rawEvent->type, rawEvent->scanCode, rawEvent->keyCode,
rawEvent->value, rawEvent->flags);
#endif