| Index: services/native_viewport/native_viewport_impl.cc
|
| diff --git a/services/native_viewport/native_viewport_impl.cc b/services/native_viewport/native_viewport_impl.cc
|
| index 09b5be3cd397dbd1084b5e2b16fdb14340daa646..62f6ca22d83c590ce79acc269c82fbe4d8e35d47 100644
|
| --- a/services/native_viewport/native_viewport_impl.cc
|
| +++ b/services/native_viewport/native_viewport_impl.cc
|
| @@ -19,10 +19,8 @@
|
| namespace native_viewport {
|
| namespace {
|
|
|
| -bool IsRateLimitedEventType(ui::Event* event) {
|
| - return event->type() == ui::ET_MOUSE_MOVED ||
|
| - event->type() == ui::ET_MOUSE_DRAGGED ||
|
| - event->type() == ui::ET_TOUCH_MOVED;
|
| +bool IsRateLimitedEventType(const mojo::EventPtr& event) {
|
| + return event->action == mojo::EVENT_TYPE_POINTER_MOVE;
|
| }
|
|
|
| } // namespace
|
| @@ -123,29 +121,14 @@ void NativeViewportImpl::OnAcceleratedWidgetDestroyed() {
|
| context_provider_.SetAcceleratedWidget(gfx::kNullAcceleratedWidget);
|
| }
|
|
|
| -bool NativeViewportImpl::OnEvent(ui::Event* ui_event) {
|
| - if (!event_dispatcher_.get())
|
| +bool NativeViewportImpl::OnEvent(mojo::EventPtr event) {
|
| + if (event.is_null() || !event_dispatcher_.get() ||
|
| + (waiting_for_event_ack_ && IsRateLimitedEventType(event))) {
|
| return false;
|
| -
|
| - // Must not return early before updating capture.
|
| - switch (ui_event->type()) {
|
| - case ui::ET_MOUSE_PRESSED:
|
| - case ui::ET_TOUCH_PRESSED:
|
| - platform_viewport_->SetCapture();
|
| - break;
|
| - case ui::ET_MOUSE_RELEASED:
|
| - case ui::ET_TOUCH_RELEASED:
|
| - platform_viewport_->ReleaseCapture();
|
| - break;
|
| - default:
|
| - break;
|
| }
|
|
|
| - if (waiting_for_event_ack_ && IsRateLimitedEventType(ui_event))
|
| - return false;
|
| -
|
| event_dispatcher_->OnEvent(
|
| - mojo::Event::From(*ui_event),
|
| + event.Pass(),
|
| base::Bind(&NativeViewportImpl::AckEvent, weak_factory_.GetWeakPtr()));
|
| waiting_for_event_ack_ = true;
|
| return false;
|
|
|