WebMouseEvent WebEventFactory::createWebMouseEvent(const GdkEvent* event, int currentClickCount) { double x, y, xRoot, yRoot; gdk_event_get_coords(event, &x, &y); gdk_event_get_root_coords(event, &xRoot, &yRoot); WebEvent::Type type = static_cast<WebEvent::Type>(0); switch (event->type) { case GDK_MOTION_NOTIFY: type = WebEvent::MouseMove; break; case GDK_BUTTON_PRESS: case GDK_2BUTTON_PRESS: case GDK_3BUTTON_PRESS: type = WebEvent::MouseDown; break; case GDK_BUTTON_RELEASE: type = WebEvent::MouseUp; break; default : ASSERT_NOT_REACHED(); } return WebMouseEvent(type, buttonForEvent(event), IntPoint(x, y), IntPoint(xRoot, yRoot), 0 /* deltaX */, 0 /* deltaY */, 0 /* deltaZ */, currentClickCount, modifiersForEvent(event), gdk_event_get_time(event)); }
WebMouseEvent WebEventFactory::createWebMouseEvent(const Evas_Event_Mouse_Move* event, const AffineTransform& toWebContent, const AffineTransform& toDeviceScreen) { IntPoint pos(event->cur.canvas.x, event->cur.canvas.y); return WebMouseEvent(WebEvent::MouseMove, buttonForEvent(event->buttons), toWebContent.mapPoint(pos), toDeviceScreen.mapPoint(pos), 0 /* deltaX */, 0 /* deltaY */, 0 /* deltaZ */, 0 /* clickCount */, modifiersForEvent(event->modifiers), convertMillisecondToSecond(event->timestamp)); }