From f192a1085a4ea16458a8cc569e945bf090375733 Mon Sep 17 00:00:00 2001 From: Prabir Pradhan Date: Fri, 6 Aug 2021 14:01:18 +0000 Subject: Use sequence numbers to synchronize enabling Pointer Capture (1/2) InputReader only processes configuration change from its main thread. This means that if there is more than one Pointer Capture change request when the thread is busy or sleeping, it will only process the latest one. To ensure requests to enable Pointer Capture are synchronized with Dispatcher, we must use sequence numbers. Requests to enable Pointer Capture have a sequence number. Requests to disable Pointer Capture do not have a value. Bug: 195312888 Test: atest inputflinger_tests Test: manual with GeforceNow app, see bug. Merged-In: I6ae9c5498dc2f783b4c7211fa3665d42e29d2919 Change-Id: I6ae9c5498dc2f783b4c7211fa3665d42e29d2919 --- services/inputflinger/InputReaderBase.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'services/inputflinger/InputReaderBase.cpp') diff --git a/services/inputflinger/InputReaderBase.cpp b/services/inputflinger/InputReaderBase.cpp index 9cc777d450..d34482f506 100644 --- a/services/inputflinger/InputReaderBase.cpp +++ b/services/inputflinger/InputReaderBase.cpp @@ -67,6 +67,9 @@ std::string InputReaderConfiguration::changesToString(uint32_t changes) { if (changes & CHANGE_EXTERNAL_STYLUS_PRESENCE) { result += "EXTERNAL_STYLUS_PRESENCE | "; } + if (changes & CHANGE_POINTER_CAPTURE) { + result += "POINTER_CAPTURE | "; + } if (changes & CHANGE_ENABLED_STATE) { result += "ENABLED_STATE | "; } -- cgit v1.2.3-59-g8ed1b