| Index: ui/aura/shared/compound_event_filter.cc
|
| diff --git a/ui/aura/shared/compound_event_filter.cc b/ui/aura/shared/compound_event_filter.cc
|
| index 0471819c91b1084a294dab669077d3bfb9b4485b..c8758f22ec5b45758481a0dda9324c3b7cfb7c71 100644
|
| --- a/ui/aura/shared/compound_event_filter.cc
|
| +++ b/ui/aura/shared/compound_event_filter.cc
|
| @@ -129,19 +129,16 @@ ui::EventResult CompoundEventFilter::FilterMouseEvent(ui::MouseEvent* event) {
|
| return static_cast<ui::EventResult>(result);
|
| }
|
|
|
| -ui::TouchStatus CompoundEventFilter::FilterTouchEvent(
|
| - Window* target,
|
| - ui::TouchEvent* event) {
|
| - ui::TouchStatus status = ui::TOUCH_STATUS_UNKNOWN;
|
| +ui::EventResult CompoundEventFilter::FilterTouchEvent(ui::TouchEvent* event) {
|
| + int result = ui::ER_UNHANDLED;
|
| if (filters_.might_have_observers()) {
|
| ObserverListBase<EventFilter>::Iterator it(filters_);
|
| EventFilter* filter;
|
| - while (status == ui::TOUCH_STATUS_UNKNOWN &&
|
| - (filter = it.GetNext()) != NULL) {
|
| - status = filter->OnTouchEvent(event);
|
| + while (!(result & ui::ER_CONSUMED) && (filter = it.GetNext()) != NULL) {
|
| + result |= filter->OnTouchEvent(event);
|
| }
|
| }
|
| - return status;
|
| + return static_cast<ui::EventResult>(result);
|
| }
|
|
|
| void CompoundEventFilter::SetCursorVisibilityOnEvent(aura::Window* target,
|
| @@ -164,22 +161,6 @@ void CompoundEventFilter::SetCursorVisibilityOnEvent(aura::Window* target,
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| -// CompoundEventFilter, EventFilter implementation:
|
| -
|
| -ui::TouchStatus CompoundEventFilter::PreHandleTouchEvent(
|
| - Window* target,
|
| - ui::TouchEvent* event) {
|
| - // TODO(sad): Move the implementation into OnTouchEvent once touch-events are
|
| - // hooked up to go through EventDispatcher.
|
| - ui::TouchStatus status = FilterTouchEvent(target, event);
|
| - if (status == ui::TOUCH_STATUS_UNKNOWN &&
|
| - event->type() == ui::ET_TOUCH_PRESSED) {
|
| - SetCursorVisibilityOnEvent(target, event, false);
|
| - }
|
| - return status;
|
| -}
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| // CompoundEventFilter, ui::EventHandler implementation:
|
|
|
| ui::EventResult CompoundEventFilter::OnKeyEvent(ui::KeyEvent* event) {
|
| @@ -229,8 +210,14 @@ ui::EventResult CompoundEventFilter::OnScrollEvent(ui::ScrollEvent* event) {
|
| return ui::ER_UNHANDLED;
|
| }
|
|
|
| -ui::TouchStatus CompoundEventFilter::OnTouchEvent(ui::TouchEvent* event) {
|
| - return EventFilter::OnTouchEvent(event);
|
| +ui::EventResult CompoundEventFilter::OnTouchEvent(ui::TouchEvent* event) {
|
| + ui::EventResult result = FilterTouchEvent(event);
|
| + if (result == ui::ER_UNHANDLED &&
|
| + event->type() == ui::ET_TOUCH_PRESSED) {
|
| + SetCursorVisibilityOnEvent(
|
| + static_cast<aura::Window*>(event->target()), event, false);
|
| + }
|
| + return result;
|
| }
|
|
|
| ui::EventResult CompoundEventFilter::OnGestureEvent(ui::GestureEvent* event) {
|
|
|