diff options
author | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-04 05:08:30 +0000 |
---|---|---|
committer | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-04 05:08:30 +0000 |
commit | e93b70ccbb53c6fec20427019b421a05a371114e (patch) | |
tree | 5e836b9d26f56a633f2ad0316cdf0ea1dd9fe98d /ui/views/widget | |
parent | 1940c4ee397232a4948b0328e728024ea19e3f5f (diff) | |
download | chromium_src-e93b70ccbb53c6fec20427019b421a05a371114e.zip chromium_src-e93b70ccbb53c6fec20427019b421a05a371114e.tar.gz chromium_src-e93b70ccbb53c6fec20427019b421a05a371114e.tar.bz2 |
events: Change gesture-event handler in EventHandler to not return any values.
The EventHandler overriddes should mark the event as having been processed
(Event::SetHandled) when the event triggered an action, or stop the propagation
of the event (Event::StopPropagation) as appropriate (when the handler destroyed
the event-target, for example).
BUG=163618
Review URL: https://codereview.chromium.org/11280290
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170890 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views/widget')
-rw-r--r-- | ui/views/widget/desktop_aura/desktop_activation_client.cc | 4 | ||||
-rw-r--r-- | ui/views/widget/desktop_aura/desktop_activation_client.h | 2 | ||||
-rw-r--r-- | ui/views/widget/desktop_aura/desktop_native_widget_aura.cc | 5 | ||||
-rw-r--r-- | ui/views/widget/desktop_aura/desktop_native_widget_aura.h | 2 | ||||
-rw-r--r-- | ui/views/widget/native_widget_aura.cc | 4 | ||||
-rw-r--r-- | ui/views/widget/native_widget_aura.h | 2 | ||||
-rw-r--r-- | ui/views/widget/native_widget_aura_unittest.cc | 5 | ||||
-rw-r--r-- | ui/views/widget/native_widget_delegate.h | 2 | ||||
-rw-r--r-- | ui/views/widget/root_view.cc | 48 | ||||
-rw-r--r-- | ui/views/widget/root_view.h | 2 | ||||
-rw-r--r-- | ui/views/widget/widget.cc | 5 | ||||
-rw-r--r-- | ui/views/widget/widget.h | 2 | ||||
-rw-r--r-- | ui/views/widget/widget_unittest.cc | 5 |
13 files changed, 45 insertions, 43 deletions
diff --git a/ui/views/widget/desktop_aura/desktop_activation_client.cc b/ui/views/widget/desktop_aura/desktop_activation_client.cc index b53feba..a099e48 100644 --- a/ui/views/widget/desktop_aura/desktop_activation_client.cc +++ b/ui/views/widget/desktop_aura/desktop_activation_client.cc @@ -164,13 +164,11 @@ ui::EventResult DesktopActivationClient::OnTouchEvent(ui::TouchEvent* event) { return ui::ER_UNHANDLED; } -ui::EventResult DesktopActivationClient::OnGestureEvent( - ui::GestureEvent* event) { +void DesktopActivationClient::OnGestureEvent(ui::GestureEvent* event) { if (event->type() == ui::ET_GESTURE_BEGIN && event->details().touch_points() == 1) { FocusWindowWithEvent(event); } - return ui::ER_UNHANDLED; } void DesktopActivationClient::FocusWindowWithEvent(const ui::Event* event) { diff --git a/ui/views/widget/desktop_aura/desktop_activation_client.h b/ui/views/widget/desktop_aura/desktop_activation_client.h index 87b1299..55ade7f 100644 --- a/ui/views/widget/desktop_aura/desktop_activation_client.h +++ b/ui/views/widget/desktop_aura/desktop_activation_client.h @@ -62,7 +62,7 @@ class VIEWS_EXPORT DesktopActivationClient virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual ui::EventResult OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; virtual ui::EventResult OnTouchEvent(ui::TouchEvent* event) OVERRIDE; - virtual ui::EventResult OnGestureEvent(ui::GestureEvent* event) OVERRIDE; + virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE; private: void FocusWindowWithEvent(const ui::Event* event); diff --git a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc index 87b8bf1..870b878 100644 --- a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc +++ b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc @@ -572,9 +572,8 @@ ui::EventResult DesktopNativeWidgetAura::OnTouchEvent(ui::TouchEvent* event) { return native_widget_delegate_->OnTouchEvent(event); } -ui::EventResult DesktopNativeWidgetAura::OnGestureEvent( - ui::GestureEvent* event) { - return native_widget_delegate_->OnGestureEvent(event); +void DesktopNativeWidgetAura::OnGestureEvent(ui::GestureEvent* event) { + native_widget_delegate_->OnGestureEvent(event); } //////////////////////////////////////////////////////////////////////////////// diff --git a/ui/views/widget/desktop_aura/desktop_native_widget_aura.h b/ui/views/widget/desktop_aura/desktop_native_widget_aura.h index 742b133..b3abe0f 100644 --- a/ui/views/widget/desktop_aura/desktop_native_widget_aura.h +++ b/ui/views/widget/desktop_aura/desktop_native_widget_aura.h @@ -153,7 +153,7 @@ class VIEWS_EXPORT DesktopNativeWidgetAura virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual ui::EventResult OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; virtual ui::EventResult OnTouchEvent(ui::TouchEvent* event) OVERRIDE; - virtual ui::EventResult OnGestureEvent(ui::GestureEvent* event) OVERRIDE; + virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE; // Overridden from aura::client::ActivationDelegate: virtual bool ShouldActivate() const OVERRIDE; diff --git a/ui/views/widget/native_widget_aura.cc b/ui/views/widget/native_widget_aura.cc index f0779c3..0d804a6 100644 --- a/ui/views/widget/native_widget_aura.cc +++ b/ui/views/widget/native_widget_aura.cc @@ -841,9 +841,9 @@ ui::EventResult NativeWidgetAura::OnTouchEvent(ui::TouchEvent* event) { return delegate_->OnTouchEvent(event); } -ui::EventResult NativeWidgetAura::OnGestureEvent(ui::GestureEvent* event) { +void NativeWidgetAura::OnGestureEvent(ui::GestureEvent* event) { DCHECK(window_->IsVisible()); - return delegate_->OnGestureEvent(event); + delegate_->OnGestureEvent(event); } //////////////////////////////////////////////////////////////////////////////// diff --git a/ui/views/widget/native_widget_aura.h b/ui/views/widget/native_widget_aura.h index 623e9b8..7a7474e 100644 --- a/ui/views/widget/native_widget_aura.h +++ b/ui/views/widget/native_widget_aura.h @@ -157,7 +157,7 @@ class VIEWS_EXPORT NativeWidgetAura : public internal::NativeWidgetPrivate, virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual ui::EventResult OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; virtual ui::EventResult OnTouchEvent(ui::TouchEvent* event) OVERRIDE; - virtual ui::EventResult OnGestureEvent(ui::GestureEvent* event) OVERRIDE; + virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE; // Overridden from aura::client::ActivationDelegate: virtual bool ShouldActivate() const OVERRIDE; diff --git a/ui/views/widget/native_widget_aura_unittest.cc b/ui/views/widget/native_widget_aura_unittest.cc index f0db7c2..7e06b79 100644 --- a/ui/views/widget/native_widget_aura_unittest.cc +++ b/ui/views/widget/native_widget_aura_unittest.cc @@ -216,9 +216,10 @@ class GestureTrackingView : public views::View { } // View overrides: - virtual ui::EventResult OnGestureEvent(ui::GestureEvent* event) OVERRIDE { + virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE { got_gesture_event_ = true; - return consume_gesture_event_ ? ui::ER_CONSUMED : ui::ER_UNHANDLED; + if (consume_gesture_event_) + event->StopPropagation(); } private: diff --git a/ui/views/widget/native_widget_delegate.h b/ui/views/widget/native_widget_delegate.h index 29ab54f..bc82cdc 100644 --- a/ui/views/widget/native_widget_delegate.h +++ b/ui/views/widget/native_widget_delegate.h @@ -112,7 +112,7 @@ class VIEWS_EXPORT NativeWidgetDelegate { virtual ui::EventResult OnTouchEvent(ui::TouchEvent* event) = 0; virtual ui::EventResult OnScrollEvent(ui::ScrollEvent* event) = 0; - virtual ui::EventResult OnGestureEvent(ui::GestureEvent* event) = 0; + virtual void OnGestureEvent(ui::GestureEvent* event) = 0; // Runs the specified native command. Returns true if the command is handled. virtual bool ExecuteCommand(int command_id) = 0; diff --git a/ui/views/widget/root_view.cc b/ui/views/widget/root_view.cc index 4dc3980..3593424 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 ----------------------------------------------------------------------- diff --git a/ui/views/widget/root_view.h b/ui/views/widget/root_view.h index 66ff49b..c87692d 100644 --- a/ui/views/widget/root_view.h +++ b/ui/views/widget/root_view.h @@ -64,7 +64,7 @@ class VIEWS_EXPORT RootView : public View, public FocusTraversable { ui::EventResult DispatchKeyEvent(const ui::KeyEvent& event); ui::EventResult DispatchScrollEvent(ui::ScrollEvent* event); ui::EventResult DispatchTouchEvent(ui::TouchEvent* event); - virtual ui::EventResult DispatchGestureEvent(ui::GestureEvent* event); + virtual void DispatchGestureEvent(ui::GestureEvent* event); // Focus --------------------------------------------------------------------- diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc index 9942c3d..457e1fe 100644 --- a/ui/views/widget/widget.cc +++ b/ui/views/widget/widget.cc @@ -1170,7 +1170,7 @@ ui::EventResult Widget::OnScrollEvent(ui::ScrollEvent* event) { DispatchScrollEvent(event); } -ui::EventResult Widget::OnGestureEvent(ui::GestureEvent* event) { +void Widget::OnGestureEvent(ui::GestureEvent* event) { ScopedEvent scoped(this, *event); switch (event->type()) { case ui::ET_GESTURE_TAP_DOWN: @@ -1191,8 +1191,7 @@ ui::EventResult Widget::OnGestureEvent(ui::GestureEvent* event) { default: break; } - return static_cast<internal::RootView*>(GetRootView())-> - DispatchGestureEvent(event); + static_cast<internal::RootView*>(GetRootView())->DispatchGestureEvent(event); } bool Widget::ExecuteCommand(int command_id) { diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h index 139c69a..3daac12 100644 --- a/ui/views/widget/widget.h +++ b/ui/views/widget/widget.h @@ -659,7 +659,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, virtual void OnMouseCaptureLost() OVERRIDE; virtual ui::EventResult OnTouchEvent(ui::TouchEvent* event) OVERRIDE; virtual ui::EventResult OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; - virtual ui::EventResult OnGestureEvent(ui::GestureEvent* event) OVERRIDE; + virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE; virtual bool ExecuteCommand(int command_id) OVERRIDE; virtual InputMethod* GetInputMethodDirect() OVERRIDE; virtual const std::vector<ui::Layer*>& GetRootLayers() OVERRIDE; diff --git a/ui/views/widget/widget_unittest.cc b/ui/views/widget/widget_unittest.cc index 44fa495..f4d9381 100644 --- a/ui/views/widget/widget_unittest.cc +++ b/ui/views/widget/widget_unittest.cc @@ -127,12 +127,11 @@ class GestureCaptureView : public View { private: // Overridden from View: - virtual ui::EventResult OnGestureEvent(ui::GestureEvent* event) OVERRIDE { + virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE { if (event->type() == ui::ET_GESTURE_BEGIN) { GetWidget()->SetCapture(this); - return ui::ER_CONSUMED; + event->StopPropagation(); } - return ui::ER_UNHANDLED; } DISALLOW_COPY_AND_ASSIGN(GestureCaptureView); |