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

Commit 719f5060 authored by Siarhei Vishniakou's avatar Siarhei Vishniakou
Browse files

Remove filterNonTouchAsIs function

Since we are no longer storing hover_exit windows and outside windows in
touch state, we can remove this function.

Bug: 211379801
Test: m inputflinger_tests && $ANDROID_HOST_OUT/nativetest64/inputflinger_tests/inputflinger_tests
Change-Id: I2083a4adb7c5b55656d1010d87557e99b774f462
parent 70dbab9f
Loading
Loading
Loading
Loading
+7 −11
Original line number Diff line number Diff line
@@ -2441,7 +2441,6 @@ std::vector<InputTarget> InputDispatcher::findTouchedWindowTargetsLocked(
    }

    // Update dispatching for hover enter and exit.
    {
    std::vector<TouchedWindow> hoveringWindows =
            getHoveringWindowsLocked(oldState, tempTouchState, entry);
    for (const TouchedWindow& touchedWindow : hoveringWindows) {
@@ -2449,7 +2448,7 @@ std::vector<InputTarget> InputDispatcher::findTouchedWindowTargetsLocked(
                              touchedWindow.pointerIds, touchedWindow.firstDownTimeInTarget,
                              targets);
    }
    }

    // Ensure that we have at least one foreground window or at least one window that cannot be a
    // foreground target. If we only have windows that are not receiving foreground touches (e.g. we
    // only have windows getting ACTION_OUTSIDE), then drop the event, because there is no window
@@ -2515,9 +2514,6 @@ std::vector<InputTarget> InputDispatcher::findTouchedWindowTargetsLocked(
    }

    outInjectionResult = InputEventInjectionResult::SUCCEEDED;
    // Drop the outside or hover touch windows since we will not care about them
    // in the next iteration.
    tempTouchState.filterNonAsIsTouchWindows();

    // Update final pieces of touch state if the injector had permission.
    if (switchedDevice) {
+0 −14
Original line number Diff line number Diff line
@@ -112,20 +112,6 @@ void TouchState::removeWindowByToken(const sp<IBinder>& token) {
    }
}

void TouchState::filterNonAsIsTouchWindows() {
    for (size_t i = 0; i < windows.size();) {
        TouchedWindow& window = windows[i];
        if (window.targetFlags.any(InputTarget::Flags::DISPATCH_AS_IS |
                                   InputTarget::Flags::DISPATCH_AS_SLIPPERY_ENTER)) {
            window.targetFlags.clear(InputTarget::DISPATCH_MASK);
            window.targetFlags |= InputTarget::Flags::DISPATCH_AS_IS;
            i += 1;
        } else {
            windows.erase(windows.begin() + i);
        }
    }
}

void TouchState::cancelPointersForWindowsExcept(const BitSet32 pointerIds,
                                                const sp<IBinder>& token) {
    if (pointerIds.isEmpty()) return;