diff options
| author | 2010-07-28 15:48:59 -0700 | |
|---|---|---|
| committer | 2010-07-29 12:19:08 -0700 | |
| commit | bbda99d2086d79ac70b403cad38a47c35af84adf (patch) | |
| tree | 42c51be78a58c4c29164dcb42621e82b2fc3e81f /include/ui/InputManager.h | |
| parent | 26d9b9870e5a387a5b38523387b4fb2d99542fe6 (diff) | |
Fixed StatusBar ANRs due to input event injection on UI thread.
Added a new asynchronous injection mode and made the existing
synchronization mechanism more robust.
Change-Id: I0464f70ff5cbd519dbb02686b2cb5d810fe7dbb2
Diffstat (limited to 'include/ui/InputManager.h')
| -rw-r--r-- | include/ui/InputManager.h | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/include/ui/InputManager.h b/include/ui/InputManager.h index 7ebec10dd9ad..4012c69135f1 100644 --- a/include/ui/InputManager.h +++ b/include/ui/InputManager.h @@ -79,13 +79,12 @@ public: virtual status_t unregisterInputChannel(const sp<InputChannel>& inputChannel) = 0; /* Injects an input event and optionally waits for sync. - * This method may block even if sync is false because it must wait for previous events - * to be dispatched before it can determine whether input event injection will be - * permitted based on the current input focus. + * The synchronization mode determines whether the method blocks while waiting for + * input injection to proceed. * Returns one of the INPUT_EVENT_INJECTION_XXX constants. */ virtual int32_t injectInputEvent(const InputEvent* event, - int32_t injectorPid, int32_t injectorUid, bool sync, int32_t timeoutMillis) = 0; + int32_t injectorPid, int32_t injectorUid, int32_t syncMode, int32_t timeoutMillis) = 0; /* Preempts input dispatch in progress by making pending synchronous * dispatches asynchronous instead. This method is generally called during a focus @@ -142,7 +141,7 @@ public: virtual status_t unregisterInputChannel(const sp<InputChannel>& inputChannel); virtual int32_t injectInputEvent(const InputEvent* event, - int32_t injectorPid, int32_t injectorUid, bool sync, int32_t timeoutMillis); + int32_t injectorPid, int32_t injectorUid, int32_t syncMode, int32_t timeoutMillis); virtual void preemptInputDispatch(); |