summaryrefslogtreecommitdiffstats
path: root/quickstep
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2019-04-03 15:25:00 -0700
committerSunny Goyal <sunnygoyal@google.com>2019-04-03 15:26:18 -0700
commit745df7c4836a59e61c9718681d8d032c31b3ee47 (patch)
treedb7a3c401c4a8487f61239e56ea3722f59e855a4 /quickstep
parent1f95993e137676150ba82012ed09e26007726c65 (diff)
downloadandroid_packages_apps_Trebuchet-745df7c4836a59e61c9718681d8d032c31b3ee47.tar.gz
android_packages_apps_Trebuchet-745df7c4836a59e61c9718681d8d032c31b3ee47.tar.bz2
android_packages_apps_Trebuchet-745df7c4836a59e61c9718681d8d032c31b3ee47.zip
Skipping touch dispatch when it happens withing the window gesture region
> Those events are already proxied through the TouchInteractionService Change-Id: If06483f208cbd462fdfdf01abba27bd937b766e7
Diffstat (limited to 'quickstep')
-rw-r--r--quickstep/recents_ui_overrides/src/com/android/quickstep/fallback/RecentsRootView.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/fallback/RecentsRootView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/fallback/RecentsRootView.java
index 6b3f028a2..777e59252 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/fallback/RecentsRootView.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/fallback/RecentsRootView.java
@@ -17,12 +17,18 @@ package com.android.quickstep.fallback;
import android.annotation.TargetApi;
import android.content.Context;
+import android.graphics.Insets;
import android.graphics.Point;
import android.graphics.Rect;
+import android.graphics.RectF;
import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.ViewDebug;
+import android.view.WindowInsets;
import com.android.launcher3.BaseActivity;
import com.android.launcher3.R;
+import com.android.launcher3.Utilities;
import com.android.launcher3.util.Themes;
import com.android.launcher3.util.TouchController;
import com.android.launcher3.views.BaseDragLayer;
@@ -33,6 +39,9 @@ public class RecentsRootView extends BaseDragLayer<RecentsActivity> {
private static final int MIN_SIZE = 10;
private final RecentsActivity mActivity;
+ @ViewDebug.ExportedProperty(category = "launcher")
+ private final RectF mTouchExcludeRegion = new RectF();
+
private final Point mLastKnownSize = new Point(MIN_SIZE, MIN_SIZE);
public RecentsRootView(Context context, AttributeSet attrs) {
@@ -88,4 +97,29 @@ public class RecentsRootView extends BaseDragLayer<RecentsActivity> {
mActivity.getDeviceProfile().updateInsets(mInsets);
super.setInsets(mInsets);
}
+
+ @Override
+ public WindowInsets dispatchApplyWindowInsets(WindowInsets insets) {
+ if (Utilities.ATLEAST_Q) {
+ Insets gestureInsets = insets.getMandatorySystemGestureInsets();
+ mTouchExcludeRegion.set(gestureInsets.left, gestureInsets.top,
+ gestureInsets.right, gestureInsets.bottom);
+ }
+ return super.dispatchApplyWindowInsets(insets);
+ }
+
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent ev) {
+ if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+ float x = ev.getX();
+ float y = ev.getY();
+ if (y < mTouchExcludeRegion.top
+ || x < mTouchExcludeRegion.left
+ || x > (getWidth() - mTouchExcludeRegion.right)
+ || y > (getHeight() - mTouchExcludeRegion.bottom)) {
+ return false;
+ }
+ }
+ return super.dispatchTouchEvent(ev);
+ }
} \ No newline at end of file