static void updateWebMouseEventFromWebCoreMouseEvent(const MouseRelatedEvent& event, const Widget& widget, const WebCore::RenderObject& renderObject, WebMouseEvent& webEvent) { webEvent.timeStampSeconds = event.timeStamp() / millisPerSecond; webEvent.modifiers = getWebInputModifiers(event); ScrollView* view = widget.parent(); IntPoint windowPoint = view->contentsToWindow(IntPoint(event.absoluteLocation().x(), event.absoluteLocation().y())); webEvent.globalX = event.screenX(); webEvent.globalY = event.screenY(); webEvent.windowX = windowPoint.x(); webEvent.windowY = windowPoint.y(); IntPoint localPoint = convertAbsoluteLocationForRenderObject(event.absoluteLocation(), renderObject); webEvent.x = localPoint.x(); webEvent.y = localPoint.y(); }
// FIXME: Change |widget| to const Widget& after RemoteFrames get // RemoteFrameViews. static void updateWebMouseEventFromCoreMouseEvent(const MouseRelatedEvent& event, const Widget* widget, const LayoutObject& layoutObject, WebMouseEvent& webEvent) { webEvent.timeStampSeconds = event.platformTimeStamp(); webEvent.modifiers = event.modifiers(); FrameView* view = widget ? toFrameView(widget->parent()) : 0; // TODO(bokan): If view == nullptr, pointInRootFrame will really be pointInRootContent. IntPoint pointInRootFrame = IntPoint(event.absoluteLocation().x(), event.absoluteLocation().y()); if (view) pointInRootFrame = view->contentsToRootFrame(pointInRootFrame); webEvent.globalX = event.screenX(); webEvent.globalY = event.screenY(); webEvent.windowX = pointInRootFrame.x(); webEvent.windowY = pointInRootFrame.y(); IntPoint localPoint = convertAbsoluteLocationForLayoutObject(event.absoluteLocation(), layoutObject); webEvent.x = localPoint.x(); webEvent.y = localPoint.y(); }