| Index: ui/aura/mus/window_tree_client.cc
|
| diff --git a/ui/aura/mus/window_tree_client.cc b/ui/aura/mus/window_tree_client.cc
|
| index 0f7351c738917443789d004d657cba9e57e89b8b..934261571eae24565c6abb99a6eb7cb4782885f0 100644
|
| --- a/ui/aura/mus/window_tree_client.cc
|
| +++ b/ui/aura/mus/window_tree_client.cc
|
| @@ -160,6 +160,14 @@ void ConvertEventLocationToDip(int64_t display_id, ui::LocatedEvent* event) {
|
| event->set_root_location(root_location);
|
| }
|
|
|
| +// Set the |target| to be the target window of this |event| and send it to
|
| +// the EventProcessor.
|
| +void DispatchEventToTarget(ui::Event* event, WindowMus* target) {
|
| + ui::Event::DispatcherApi dispatch_helper(event);
|
| + dispatch_helper.set_target(target->GetWindow());
|
| + GetWindowTreeHostMus(target)->SendEventToProcessor(event);
|
| +}
|
| +
|
| } // namespace
|
|
|
| WindowTreeClient::WindowTreeClient(
|
| @@ -1150,34 +1158,22 @@ void WindowTreeClient::OnWindowInputEvent(uint32_t event_id,
|
| return;
|
| }
|
|
|
| - WindowTreeHostMus* host = GetWindowTreeHostMus(window);
|
| - DCHECK(host);
|
| -
|
| - // The location of the event is relative to |window|. As the event is handed
|
| - // to WindowTreeHost we need it to be relative to WindowTreeHost.
|
| - if (event->IsLocatedEvent()) {
|
| - gfx::Point host_location = event->AsLocatedEvent()->location();
|
| - aura::Window::ConvertPointToTarget(window->GetWindow(), host->window(),
|
| - &host_location);
|
| - event->AsLocatedEvent()->set_location(host_location);
|
| - }
|
| -
|
| EventAckHandler ack_handler(CreateEventResultCallback(event_id));
|
| // TODO(moshayedi): crbug.com/617222. No need to convert to ui::MouseEvent or
|
| // ui::TouchEvent once we have proper support for pointer events.
|
| if (event->IsMousePointerEvent()) {
|
| if (event->type() == ui::ET_POINTER_WHEEL_CHANGED) {
|
| ui::MouseWheelEvent mapped_event(*event->AsPointerEvent());
|
| - host->SendEventToProcessor(&mapped_event);
|
| + DispatchEventToTarget(&mapped_event, window);
|
| } else {
|
| ui::MouseEvent mapped_event(*event->AsPointerEvent());
|
| - host->SendEventToProcessor(&mapped_event);
|
| + DispatchEventToTarget(&mapped_event, window);
|
| }
|
| } else if (event->IsTouchPointerEvent()) {
|
| ui::TouchEvent mapped_event(*event->AsPointerEvent());
|
| - host->SendEventToProcessor(&mapped_event);
|
| + DispatchEventToTarget(&mapped_event, window);
|
| } else {
|
| - host->SendEventToProcessor(event.get());
|
| + DispatchEventToTarget(event.get(), window);
|
| }
|
| ack_handler.set_handled(event->handled());
|
| }
|
|
|