Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter.java |
| index 1c80f918e00e7c36b309220a00d17a787dfd9bb8..05af03516703da4ea0e8dd59d7cd6d71da4f2b7a 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter.java |
| @@ -110,6 +110,9 @@ public class OverlayPanelEventFilter extends GestureEventFilter { |
| /** The initial Y position of the current gesture. */ |
| private float mInitialEventY; |
| + /** Whether or not the superclass has seen a down event. */ |
| + private boolean mFilterHadDownEvent; |
| + |
| private class SwipeRecognizerImpl extends SwipeRecognizer { |
| public SwipeRecognizerImpl(Context context) { |
| super(context); |
| @@ -328,6 +331,13 @@ public class OverlayPanelEventFilter extends GestureEventFilter { |
| */ |
| private void propagateEvent(MotionEvent e, EventTarget target) { |
| if (target == EventTarget.PANEL) { |
| + // Make sure the internal gesture detector has seen at least on down event. |
| + if (e.getActionMasked() == MotionEvent.ACTION_DOWN) mFilterHadDownEvent = true; |
| + if (!mFilterHadDownEvent) { |
| + MotionEvent down = MotionEvent.obtain(e); |
| + down.setAction(MotionEvent.ACTION_DOWN); |
| + super.onTouchEventInternal(down); |
|
Khushal
2017/04/27 17:18:00
set mFilterHadDownEvent to true in this block as w
mdjones
2017/04/27 17:22:32
Whoops; done.
|
| + } |
| super.onTouchEventInternal(e); |
| } else if (target == EventTarget.CONTENT_VIEW) { |
| propagateEventToContentViewCore(e); |