Edge click and drag using the trackpad shouldn't trigger back
Fixes: 266927888 Test: Edge click and drag doesn't trigger back Change-Id: I413d00a02d9ba95e0b9ea000f4de5287e69cb9f6
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user