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

Commit a7da0f4f authored by Ameer Armaly's avatar Ameer Armaly
Browse files

[DO NOT MERGE] Require both fingers to move before starting two-finger passthrough.

Bug: 162521649
Test: manual
Change-Id: Ia6b7bf84fd0c7777f21afbd0e0c09bf3f4a10fb2
parent aa25d204
Loading
Loading
Loading
Loading
+17 −9
Original line number Diff line number Diff line
@@ -590,17 +590,25 @@ public class TouchExplorer extends BaseEventStreamTransformation
                    if (pointerIndex < 0) {
                        return;
                    }
                    // Require both fingers to have moved a certain amount before starting a drag.
                    for (int index = 0; index < event.getPointerCount(); ++index) {
                        int id = event.getPointerId(index);
                        if (!mReceivedPointerTracker.isReceivedPointerDown(id)) {
                            // Something is wrong with the event stream.
                            Slog.e(LOG_TAG, "Invalid pointer id: " + id);
                        }
                        final float deltaX =
                            mReceivedPointerTracker.getReceivedPointerDownX(pointerId)
                                    - rawEvent.getX(pointerIndex);
                                mReceivedPointerTracker.getReceivedPointerDownX(id)
                                        - rawEvent.getX(index);
                        final float deltaY =
                            mReceivedPointerTracker.getReceivedPointerDownY(pointerId)
                                    - rawEvent.getY(pointerIndex);
                                mReceivedPointerTracker.getReceivedPointerDownY(id)
                                        - rawEvent.getY(index);
                        final double moveDelta = Math.hypot(deltaX, deltaY);
                        if (moveDelta < mTouchSlop) {
                            return;
                        }
                    }
                }
                // More than one pointer so the user is not touch exploring
                // and now we have to decide whether to delegate or drag.
                // Remove move history before send injected non-move events