From 98cbd62e1f6d57ccef1758fb82dd245f7354fb73 Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Thu, 4 Aug 2016 11:52:18 -0700 Subject: Reset mActiveController to null in DragLayer.onInterceptTouchEvent(). Otherwise the previous active controller will continue to handle touch events even if it doesn't re-intercept future touches. For instance, All Apps was handling the swipe gesture after DragLayer intercepted to close a shortcuts container, which led to the weird behavior described in the bug. Bug: 30590854 Change-Id: I247b39b03d336a04659f6ce644380bf3cef8de3f --- src/com/android/launcher3/dragndrop/DragLayer.java | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/com/android/launcher3/dragndrop') diff --git a/src/com/android/launcher3/dragndrop/DragLayer.java b/src/com/android/launcher3/dragndrop/DragLayer.java index 3300b7699..448f70943 100644 --- a/src/com/android/launcher3/dragndrop/DragLayer.java +++ b/src/com/android/launcher3/dragndrop/DragLayer.java @@ -295,6 +295,8 @@ public class DragLayer extends InsettableFrameLayout { } clearAllResizeFrames(); + mActiveController = null; + if (mDragController.onInterceptTouchEvent(ev)) { mActiveController = mDragController; return true; -- cgit v1.2.3