| Index: content/browser/renderer_host/render_widget_host_view_aura.cc
|
| diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
|
| index 39f5cbc36e54d8cfa728bfb39381e35bbb3e7907..5bdb654d79f5417b2182c4010a75a3b91d13e80f 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
|
| @@ -34,7 +34,6 @@
|
| #include "content/browser/renderer_host/dip_util.h"
|
| #include "content/browser/renderer_host/input/synthetic_gesture_target_aura.h"
|
| #include "content/browser/renderer_host/input/touch_selection_controller_client_aura.h"
|
| -#include "content/browser/renderer_host/input/web_input_event_util.h"
|
| #include "content/browser/renderer_host/overscroll_controller.h"
|
| #include "content/browser/renderer_host/render_view_host_delegate.h"
|
| #include "content/browser/renderer_host/render_view_host_delegate_view.h"
|
| @@ -43,7 +42,6 @@
|
| #include "content/browser/renderer_host/render_widget_host_impl.h"
|
| #include "content/browser/renderer_host/render_widget_host_input_event_router.h"
|
| #include "content/browser/renderer_host/ui_events_helper.h"
|
| -#include "content/browser/renderer_host/web_input_event_aura.h"
|
| #include "content/common/content_switches_internal.h"
|
| #include "content/common/input_messages.h"
|
| #include "content/common/site_isolation_policy.h"
|
| @@ -79,6 +77,7 @@
|
| #include "ui/display/display.h"
|
| #include "ui/display/screen.h"
|
| #include "ui/events/blink/blink_event_util.h"
|
| +#include "ui/events/blink/web_input_event.h"
|
| #include "ui/events/event.h"
|
| #include "ui/events/event_utils.h"
|
| #include "ui/events/gesture_detection/gesture_configuration.h"
|
| @@ -186,6 +185,19 @@ void MarkUnchangedTouchPointsAsStationary(
|
| }
|
| }
|
|
|
| +gfx::Point GetScreenLocationFromEvent(const ui::LocatedEvent& event) {
|
| + aura::Window* root =
|
| + static_cast<aura::Window*>(event.target())->GetRootWindow();
|
| + aura::client::ScreenPositionClient* spc =
|
| + aura::client::GetScreenPositionClient(root);
|
| + if (!spc)
|
| + return event.root_location();
|
| +
|
| + gfx::Point screen_location(event.root_location());
|
| + spc->ConvertPointToScreen(root, &screen_location);
|
| + return screen_location;
|
| +}
|
| +
|
| #if defined(OS_WIN)
|
| // This class implements the ui::OnScreenKeyboardObserver interface
|
| // which provides notifications about the on screen keyboard on Windows getting
|
| @@ -1829,7 +1841,8 @@ void RenderWidgetHostViewAura::OnMouseEvent(ui::MouseEvent* event) {
|
|
|
| if (event->type() == ui::ET_MOUSEWHEEL) {
|
| blink::WebMouseWheelEvent mouse_wheel_event =
|
| - MakeWebMouseWheelEvent(static_cast<ui::MouseWheelEvent&>(*event));
|
| + ui::MakeWebMouseWheelEvent(static_cast<ui::MouseWheelEvent&>(*event),
|
| + base::Bind(&GetScreenLocationFromEvent));
|
| if (mouse_wheel_event.deltaX != 0 || mouse_wheel_event.deltaY != 0)
|
| host_->ForwardWheelEvent(mouse_wheel_event);
|
| return;
|
| @@ -1846,7 +1859,8 @@ void RenderWidgetHostViewAura::OnMouseEvent(ui::MouseEvent* event) {
|
| return;
|
| }
|
|
|
| - blink::WebMouseEvent mouse_event = MakeWebMouseEvent(*event);
|
| + blink::WebMouseEvent mouse_event =
|
| + ui::MakeWebMouseEvent(*event, base::Bind(&GetScreenLocationFromEvent));
|
|
|
| bool is_move_to_center_event = (event->type() == ui::ET_MOUSE_MOVED ||
|
| event->type() == ui::ET_MOUSE_DRAGGED) &&
|
| @@ -1928,7 +1942,8 @@ void RenderWidgetHostViewAura::OnMouseEvent(ui::MouseEvent* event) {
|
| }
|
| #endif
|
| blink::WebMouseWheelEvent mouse_wheel_event =
|
| - MakeWebMouseWheelEvent(static_cast<ui::MouseWheelEvent&>(*event));
|
| + ui::MakeWebMouseWheelEvent(static_cast<ui::MouseWheelEvent&>(*event),
|
| + base::Bind(&GetScreenLocationFromEvent));
|
| if (mouse_wheel_event.deltaX != 0 || mouse_wheel_event.deltaY != 0) {
|
| if (ShouldRouteEvent(event)) {
|
| host_->delegate()->GetInputEventRouter()->RouteMouseWheelEvent(
|
| @@ -1947,7 +1962,8 @@ void RenderWidgetHostViewAura::OnMouseEvent(ui::MouseEvent* event) {
|
| if (event->type() == ui::ET_MOUSE_PRESSED)
|
| FinishImeCompositionSession();
|
|
|
| - blink::WebMouseEvent mouse_event = MakeWebMouseEvent(*event);
|
| + blink::WebMouseEvent mouse_event = ui::MakeWebMouseEvent(
|
| + *event, base::Bind(&GetScreenLocationFromEvent));
|
| ModifyEventMovementAndCoords(&mouse_event);
|
| if (ShouldRouteEvent(event)) {
|
| host_->delegate()->GetInputEventRouter()->RouteMouseEvent(this,
|
| @@ -2073,15 +2089,14 @@ void RenderWidgetHostViewAura::OnScrollEvent(ui::ScrollEvent* event) {
|
| if (event->finger_count() != 2)
|
| return;
|
| #endif
|
| - blink::WebGestureEvent gesture_event =
|
| - MakeWebGestureEventFlingCancel();
|
| + blink::WebGestureEvent gesture_event = ui::MakeWebGestureEventFlingCancel();
|
| // Coordinates need to be transferred to the fling cancel gesture only
|
| // for Surface-targeting to ensure that it is targeted to the correct
|
| // RenderWidgetHost.
|
| gesture_event.x = event->x();
|
| gesture_event.y = event->y();
|
| - blink::WebMouseWheelEvent mouse_wheel_event =
|
| - MakeWebMouseWheelEvent(*event);
|
| + blink::WebMouseWheelEvent mouse_wheel_event = ui::MakeWebMouseWheelEvent(
|
| + *event, base::Bind(&GetScreenLocationFromEvent));
|
| if (ShouldRouteEvent(event)) {
|
| host_->delegate()->GetInputEventRouter()->RouteGestureEvent(
|
| this, &gesture_event, ui::LatencyInfo());
|
| @@ -2095,7 +2110,8 @@ void RenderWidgetHostViewAura::OnScrollEvent(ui::ScrollEvent* event) {
|
| RecordAction(base::UserMetricsAction("TrackpadScroll"));
|
| } else if (event->type() == ui::ET_SCROLL_FLING_START ||
|
| event->type() == ui::ET_SCROLL_FLING_CANCEL) {
|
| - blink::WebGestureEvent gesture_event = MakeWebGestureEvent(*event);
|
| + blink::WebGestureEvent gesture_event = ui::MakeWebGestureEvent(
|
| + *event, base::Bind(&GetScreenLocationFromEvent));
|
| if (ShouldRouteEvent(event)) {
|
| host_->delegate()->GetInputEventRouter()->RouteGestureEvent(
|
| this, &gesture_event, ui::LatencyInfo());
|
| @@ -2174,7 +2190,8 @@ void RenderWidgetHostViewAura::OnGestureEvent(ui::GestureEvent* event) {
|
| if (event->type() == ui::ET_GESTURE_TAP)
|
| FinishImeCompositionSession();
|
|
|
| - blink::WebGestureEvent gesture = MakeWebGestureEvent(*event);
|
| + blink::WebGestureEvent gesture =
|
| + ui::MakeWebGestureEvent(*event, base::Bind(&GetScreenLocationFromEvent));
|
| if (event->type() == ui::ET_GESTURE_TAP_DOWN) {
|
| // Webkit does not stop a fling-scroll on tap-down. So explicitly send an
|
| // event to stop any in-progress flings.
|
|
|