diff options
author | 2023-04-27 06:37:28 +0000 | |
---|---|---|
committer | 2023-04-27 06:37:28 +0000 | |
commit | d9f0c5464b360b54ac64b70c99eca820907ead35 (patch) | |
tree | 57469d40d7cd5b2e49eed23318ed9c123555718f | |
parent | 64b68f5d33dee4fc8b29620acffba0ed3afdeb09 (diff) | |
parent | 8229620ffb853e2105eb5d1a4ea78c84c0e5c6f2 (diff) |
Merge "Edge click and drag using the trackpad shouldn't trigger back" into udc-dev
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java index 41e3e6d83eea..9a1efc3d6456 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java @@ -15,6 +15,8 @@ */ package com.android.systemui.navigationbar.gestural; +import static android.view.InputDevice.SOURCE_MOUSE; +import static android.view.InputDevice.SOURCE_TOUCHPAD; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_EXCLUDE_FROM_SCREEN_MAGNIFICATION; import static com.android.systemui.classifier.Classifier.BACK_GESTURE; @@ -937,10 +939,12 @@ public class EdgeBackGestureHandler implements PluginListener<NavigationEdgeBack mMLResults = 0; mLogGesture = false; mInRejectedExclusion = false; - boolean isWithinInsets = isWithinInsets((int) ev.getX(), (int) ev.getY()); // Trackpad back gestures don't have zones, so we don't need to check if the down event - // is within insets. + // is within insets. Also we don't allow back for button press from the trackpad, and + // yet we do with a mouse. + boolean isWithinInsets = isWithinInsets((int) ev.getX(), (int) ev.getY()); mAllowGesture = !mDisabledForQuickstep && mIsBackGestureAllowed + && !isButtonPressFromTrackpad(ev) && (isTrackpadMultiFingerSwipe || isWithinInsets) && !mGestureBlockingActivityRunning && !QuickStepContract.isBackGestureDisabled(mSysUiFlags) @@ -1047,6 +1051,11 @@ public class EdgeBackGestureHandler implements PluginListener<NavigationEdgeBack mProtoTracer.scheduleFrameUpdate(); } + private boolean isButtonPressFromTrackpad(MotionEvent ev) { + int sources = InputManager.getInstance().getInputDevice(ev.getDeviceId()).getSources(); + return (sources & (SOURCE_MOUSE | SOURCE_TOUCHPAD)) == sources && ev.getButtonState() != 0; + } + private void dispatchToBackAnimation(MotionEvent event) { if (mBackAnimation != null) { mVelocityTracker.addMovement(event); |