Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80cdaeed authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Use sequence numbers to synchronize enabling Pointer Capture (2/2)"...

Merge "Use sequence numbers to synchronize enabling Pointer Capture (2/2)" into sc-qpr1-dev am: 977ab888

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15870328

Change-Id: Ibba0c320565b75b0a224c3f17a9f2860bd8b9800
parents 74d26d34 977ab888
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -337,7 +337,7 @@ public:
    void pokeUserActivity(nsecs_t eventTime, int32_t eventType, int32_t displayId) override;
    bool checkInjectEventsPermissionNonReentrant(int32_t injectorPid, int32_t injectorUid) override;
    void onPointerDownOutsideFocus(const sp<IBinder>& touchedToken) override;
    void setPointerCapture(bool enabled) override;
    void setPointerCapture(const PointerCaptureRequest& request) override;
    void notifyDropWindow(const sp<IBinder>& token, float x, float y) override;

    /* --- PointerControllerPolicyInterface implementation --- */
@@ -372,8 +372,8 @@ private:
        // Show touches feature enable/disable.
        bool showTouches;

        // Pointer capture feature enable/disable.
        bool pointerCapture;
        // The latest request to enable or disable Pointer Capture.
        PointerCaptureRequest pointerCaptureRequest;

        // Sprite controller singleton, created on first use.
        sp<SpriteController> spriteController;
@@ -417,7 +417,6 @@ NativeInputManager::NativeInputManager(jobject contextObj,
        mLocked.pointerSpeed = 0;
        mLocked.pointerGesturesEnabled = true;
        mLocked.showTouches = false;
        mLocked.pointerCapture = false;
        mLocked.pointerDisplayId = ADISPLAY_ID_DEFAULT;
    }
    mInteractive = true;
@@ -446,7 +445,9 @@ void NativeInputManager::dump(std::string& dump) {
        dump += StringPrintf(INDENT "Pointer Gestures Enabled: %s\n",
                toString(mLocked.pointerGesturesEnabled));
        dump += StringPrintf(INDENT "Show Touches: %s\n", toString(mLocked.showTouches));
        dump += StringPrintf(INDENT "Pointer Capture Enabled: %s\n", toString(mLocked.pointerCapture));
        dump += StringPrintf(INDENT "Pointer Capture: %s, seq=%" PRIu32 "\n",
                             mLocked.pointerCaptureRequest.enable ? "Enabled" : "Disabled",
                             mLocked.pointerCaptureRequest.seq);
    }
    dump += "\n";

@@ -634,7 +635,7 @@ void NativeInputManager::getReaderConfiguration(InputReaderConfiguration* outCon

        outConfig->showTouches = mLocked.showTouches;

        outConfig->pointerCapture = mLocked.pointerCapture;
        outConfig->pointerCaptureRequest = mLocked.pointerCaptureRequest;

        outConfig->setDisplayViewports(mLocked.viewports);

@@ -1383,16 +1384,16 @@ void NativeInputManager::onPointerDownOutsideFocus(const sp<IBinder>& touchedTok
    checkAndClearExceptionFromCallback(env, "onPointerDownOutsideFocus");
}

void NativeInputManager::setPointerCapture(bool enabled) {
void NativeInputManager::setPointerCapture(const PointerCaptureRequest& request) {
    { // acquire lock
        AutoMutex _l(mLock);

        if (mLocked.pointerCapture == enabled) {
        if (mLocked.pointerCaptureRequest == request) {
            return;
        }

        ALOGV("%s pointer capture.", enabled ? "Enabling" : "Disabling");
        mLocked.pointerCapture = enabled;
        ALOGV("%s pointer capture.", request.enable ? "Enabling" : "Disabling");
        mLocked.pointerCaptureRequest = request;
    } // release lock

    mInputManager->getReader()->requestRefreshConfiguration(