| Index: ui/views/widget/root_view.cc
|
| diff --git a/ui/views/widget/root_view.cc b/ui/views/widget/root_view.cc
|
| index 4dc398090eb0f138390fdb0a9f77b600c4914c58..35934241f7a54cc9964c3f3b702f4b99bb006e76 100644
|
| --- a/ui/views/widget/root_view.cc
|
| +++ b/ui/views/widget/root_view.cc
|
| @@ -196,9 +196,7 @@ ui::EventResult RootView::DispatchTouchEvent(ui::TouchEvent* event) {
|
| return status;
|
| }
|
|
|
| -ui::EventResult RootView::DispatchGestureEvent(ui::GestureEvent* event) {
|
| - ui::EventResult status = ui::ER_UNHANDLED;
|
| -
|
| +void RootView::DispatchGestureEvent(ui::GestureEvent* event) {
|
| if (gesture_handler_) {
|
| // |gesture_handler_| (or |scroll_gesture_handler_|) can be deleted during
|
| // processing.
|
| @@ -206,8 +204,7 @@ ui::EventResult RootView::DispatchGestureEvent(ui::GestureEvent* event) {
|
| (event->IsScrollGestureEvent() || event->IsFlingScrollEvent()) ?
|
| scroll_gesture_handler_ : gesture_handler_;
|
| ui::GestureEvent handler_event(*event, static_cast<View*>(this), handler);
|
| -
|
| - ui::EventResult status = handler->ProcessGestureEvent(&handler_event);
|
| + handler->ProcessGestureEvent(&handler_event);
|
|
|
| if (event->type() == ui::ET_GESTURE_END &&
|
| event->details().touch_points() <= 1) {
|
| @@ -225,10 +222,13 @@ ui::EventResult RootView::DispatchGestureEvent(ui::GestureEvent* event) {
|
| scroll_gesture_handler_ = NULL;
|
| }
|
|
|
| - if (status == ui::ER_CONSUMED)
|
| - return status;
|
| -
|
| - DCHECK_EQ(ui::ER_UNHANDLED, status);
|
| + if (handler_event.stopped_propagation()) {
|
| + event->StopPropagation();
|
| + return;
|
| + } else if (handler_event.handled()) {
|
| + event->SetHandled();
|
| + return;
|
| + }
|
|
|
| if (event->type() == ui::ET_GESTURE_SCROLL_BEGIN &&
|
| !scroll_gesture_handler_) {
|
| @@ -241,14 +241,19 @@ ui::EventResult RootView::DispatchGestureEvent(ui::GestureEvent* event) {
|
| scroll_gesture_handler_ = scroll_gesture_handler_->parent()) {
|
| ui::GestureEvent gesture_event(*event, static_cast<View*>(this),
|
| scroll_gesture_handler_);
|
| - status = scroll_gesture_handler_->ProcessGestureEvent(&gesture_event);
|
| - if (status == ui::ER_CONSUMED)
|
| - return status;
|
| + scroll_gesture_handler_->ProcessGestureEvent(&gesture_event);
|
| + if (gesture_event.stopped_propagation()) {
|
| + event->StopPropagation();
|
| + return;
|
| + } else if (gesture_event.handled()) {
|
| + event->SetHandled();
|
| + return;
|
| + }
|
| }
|
| scroll_gesture_handler_ = NULL;
|
| }
|
|
|
| - return ui::ER_UNHANDLED;
|
| + return;
|
| }
|
|
|
| // Walk up the tree until we find a view that wants the gesture event.
|
| @@ -257,34 +262,35 @@ ui::EventResult RootView::DispatchGestureEvent(ui::GestureEvent* event) {
|
| gesture_handler_ = gesture_handler_->parent()) {
|
| if (!gesture_handler_->enabled()) {
|
| // Disabled views eat events but are treated as not handled.
|
| - return ui::ER_UNHANDLED;
|
| + return;
|
| }
|
|
|
| // See if this view wants to handle the Gesture.
|
| ui::GestureEvent gesture_event(*event, static_cast<View*>(this),
|
| gesture_handler_);
|
| - status = gesture_handler_->ProcessGestureEvent(&gesture_event);
|
| + gesture_handler_->ProcessGestureEvent(&gesture_event);
|
|
|
| // The view could have removed itself from the tree when handling
|
| // OnGestureEvent(). So handle as per OnMousePressed. NB: we
|
| // assume that the RootView itself cannot be so removed.
|
| if (!gesture_handler_)
|
| - return ui::ER_UNHANDLED;
|
| + return;
|
|
|
| - if (status == ui::ER_CONSUMED) {
|
| + if (gesture_event.handled()) {
|
| if (gesture_event.type() == ui::ET_GESTURE_SCROLL_BEGIN)
|
| scroll_gesture_handler_ = gesture_handler_;
|
| - return status;
|
| + if (gesture_event.stopped_propagation())
|
| + event->StopPropagation();
|
| + else
|
| + event->SetHandled();
|
| + return;
|
| }
|
|
|
| // The gesture event wasn't processed. Go up the view hierarchy and
|
| // dispatch the gesture event.
|
| - DCHECK_EQ(ui::ER_UNHANDLED, status);
|
| }
|
|
|
| gesture_handler_ = NULL;
|
| -
|
| - return status;
|
| }
|
|
|
| // Focus -----------------------------------------------------------------------
|
|
|