| Index: ui/views/widget/root_view_targeter.cc
|
| diff --git a/ui/views/widget/root_view_targeter.cc b/ui/views/widget/root_view_targeter.cc
|
| index 3c4b9e21c40587d021e1e8c0a680d83684babf8c..78e007d988a72e97c52005aa902332b79c54563c 100644
|
| --- a/ui/views/widget/root_view_targeter.cc
|
| +++ b/ui/views/widget/root_view_targeter.cc
|
| @@ -31,6 +31,11 @@ View* RootViewTargeter::FindTargetForGestureEvent(
|
| return root_view_->gesture_handler_;
|
| }
|
|
|
| + // If no default gesture handler has already been set, do not perform any
|
| + // targeting for a ET_GESTURE_END event.
|
| + if (gesture.type() == ui::ET_GESTURE_END)
|
| + return NULL;
|
| +
|
| // If rect-based targeting is enabled, use the gesture's bounding box to
|
| // determine the target. Otherwise use the center point of the gesture's
|
| // bounding box to determine the target.
|
| @@ -49,6 +54,12 @@ View* RootViewTargeter::FindTargetForGestureEvent(
|
| ui::EventTarget* RootViewTargeter::FindNextBestTargetForGestureEvent(
|
| ui::EventTarget* previous_target,
|
| const ui::GestureEvent& gesture) {
|
| + // ET_GESTURE_END events should only ever be targeted to the default
|
| + // gesture handler set by a previous gesture, if one exists. Thus we do not
|
| + // permit any re-targeting of ET_GESTURE_END events.
|
| + if (gesture.type() == ui::ET_GESTURE_END)
|
| + return NULL;
|
| +
|
| // GESTURE_SCROLL_BEGIN events are always permitted to be re-targeted, even
|
| // if |allow_gesture_event_retargeting_| is false.
|
| if (!root_view_->allow_gesture_event_retargeting_ &&
|
|
|