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

Commit fd0fdaf7 authored by Michael Wright's avatar Michael Wright Committed by Android Git Automerger
Browse files

am 3643c88f: Merge "Send cancelation events to monitors when injection fails." into mnc-dev

* commit '3643c88f':
  Send cancelation events to monitors when injection fails.
parents c28e8663 3643c88f
Loading
Loading
Loading
Loading
+15 −1
Original line number Original line Diff line number Diff line
@@ -859,6 +859,13 @@ bool InputDispatcher::dispatchMotionLocked(


    setInjectionResultLocked(entry, injectionResult);
    setInjectionResultLocked(entry, injectionResult);
    if (injectionResult != INPUT_EVENT_INJECTION_SUCCEEDED) {
    if (injectionResult != INPUT_EVENT_INJECTION_SUCCEEDED) {
        if (injectionResult != INPUT_EVENT_INJECTION_PERMISSION_DENIED) {
            CancelationOptions::Mode mode(isPointerEvent ?
                    CancelationOptions::CANCEL_POINTER_EVENTS :
                    CancelationOptions::CANCEL_NON_POINTER_EVENTS);
            CancelationOptions options(mode, "input event injection failed");
            synthesizeCancelationEventsForMonitorsLocked(options);
        }
        return true;
        return true;
    }
    }


@@ -886,7 +893,7 @@ void InputDispatcher::logOutboundMotionDetailsLocked(const char* prefix, const M
            "edgeFlags=0x%x, xPrecision=%f, yPrecision=%f, downTime=%lld",
            "edgeFlags=0x%x, xPrecision=%f, yPrecision=%f, downTime=%lld",
            prefix,
            prefix,
            entry->eventTime, entry->deviceId, entry->source, entry->policyFlags,
            entry->eventTime, entry->deviceId, entry->source, entry->policyFlags,
            entry->action, entry->actionButton entry->flags,
            entry->action, entry->actionButton, entry->flags,
            entry->metaState, entry->buttonState,
            entry->metaState, entry->buttonState,
            entry->edgeFlags, entry->xPrecision, entry->yPrecision,
            entry->edgeFlags, entry->xPrecision, entry->yPrecision,
            entry->downTime);
            entry->downTime);
@@ -2167,6 +2174,13 @@ void InputDispatcher::synthesizeCancelationEventsForAllConnectionsLocked(
    }
    }
}
}


void InputDispatcher::synthesizeCancelationEventsForMonitorsLocked(
        const CancelationOptions& options) {
    for (size_t i = 0; i < mMonitoringChannels.size(); i++) {
        synthesizeCancelationEventsForInputChannelLocked(mMonitoringChannels[i], options);
    }
}

void InputDispatcher::synthesizeCancelationEventsForInputChannelLocked(
void InputDispatcher::synthesizeCancelationEventsForInputChannelLocked(
        const sp<InputChannel>& channel, const CancelationOptions& options) {
        const sp<InputChannel>& channel, const CancelationOptions& options) {
    ssize_t index = getConnectionIndexLocked(channel);
    ssize_t index = getConnectionIndexLocked(channel);
+1 −0
Original line number Original line Diff line number Diff line
@@ -1076,6 +1076,7 @@ private:


    void synthesizeCancelationEventsForAllConnectionsLocked(
    void synthesizeCancelationEventsForAllConnectionsLocked(
            const CancelationOptions& options);
            const CancelationOptions& options);
    void synthesizeCancelationEventsForMonitorsLocked(const CancelationOptions& options);
    void synthesizeCancelationEventsForInputChannelLocked(const sp<InputChannel>& channel,
    void synthesizeCancelationEventsForInputChannelLocked(const sp<InputChannel>& channel,
            const CancelationOptions& options);
            const CancelationOptions& options);
    void synthesizeCancelationEventsForConnectionLocked(const sp<Connection>& connection,
    void synthesizeCancelationEventsForConnectionLocked(const sp<Connection>& connection,