diff options
author | Jeff Brown <jeffbrown@google.com> | 2010-10-11 23:32:49 -0700 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2010-10-12 00:16:14 -0700 |
commit | a8ed856a8ae8fb5fd4c4fea520b53f3fe5251e47 (patch) | |
tree | 3b24455b645ebc25c3331d88cbaa01652107f899 /libs | |
parent | 3d3429e6317a4652247906ccc58ad71068b77b2d (diff) | |
download | frameworks_native-a8ed856a8ae8fb5fd4c4fea520b53f3fe5251e47.zip frameworks_native-a8ed856a8ae8fb5fd4c4fea520b53f3fe5251e47.tar.gz frameworks_native-a8ed856a8ae8fb5fd4c4fea520b53f3fe5251e47.tar.bz2 |
Improve the input policy handling a bit.
Fixed some issues with Monkeys turning off their own screens. Ook ook!
Added some more comments to explain what's going on.
Change-Id: Id2bc0466161a642a73ef7ef97725d1c81e984b12
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ui/InputDispatcher.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/libs/ui/InputDispatcher.cpp b/libs/ui/InputDispatcher.cpp index 054042f..6ba19d7 100644 --- a/libs/ui/InputDispatcher.cpp +++ b/libs/ui/InputDispatcher.cpp @@ -432,10 +432,9 @@ void InputDispatcher::dropInboundEventLocked(EventEntry* entry, DropReason dropR switch (dropReason) { case DROP_REASON_POLICY: #if DEBUG_INBOUND_EVENT_DETAILS - LOGD("Dropped event because policy requested that it not be delivered to the application."); + LOGD("Dropped event because policy consumed it."); #endif - reason = "inbound event was dropped because the policy requested that it not be " - "delivered to the application"; + reason = "inbound event was dropped because the policy consumed it"; break; case DROP_REASON_DISABLED: LOGI("Dropped event because input dispatch is disabled."); @@ -625,15 +624,13 @@ bool InputDispatcher::dispatchKeyLocked( if (*dropReason == DROP_REASON_NOT_DROPPED) { *dropReason = DROP_REASON_POLICY; } - resetTargetsLocked(); - setInjectionResultLocked(entry, INPUT_EVENT_INJECTION_SUCCEEDED); - return true; } // Clean up if dropping the event. if (*dropReason != DROP_REASON_NOT_DROPPED) { resetTargetsLocked(); - setInjectionResultLocked(entry, INPUT_EVENT_INJECTION_FAILED); + setInjectionResultLocked(entry, *dropReason == DROP_REASON_POLICY + ? INPUT_EVENT_INJECTION_SUCCEEDED : INPUT_EVENT_INJECTION_FAILED); return true; } @@ -713,7 +710,8 @@ bool InputDispatcher::dispatchMotionLocked( // Clean up if dropping the event. if (*dropReason != DROP_REASON_NOT_DROPPED) { resetTargetsLocked(); - setInjectionResultLocked(entry, INPUT_EVENT_INJECTION_FAILED); + setInjectionResultLocked(entry, *dropReason == DROP_REASON_POLICY + ? INPUT_EVENT_INJECTION_SUCCEEDED : INPUT_EVENT_INJECTION_FAILED); return true; } |