void PageClientImpl::doneWithTouchEvent(const NativeWebTouchEvent& touchEvent, bool wasEventHandled) { if (wasEventHandled) return; const struct wpe_input_touch_event_raw* touchPoint = touchEvent.nativeFallbackTouchPoint(); if (touchPoint->type == wpe_input_touch_event_type_null) return; struct wpe_input_pointer_event pointerEvent{ wpe_input_pointer_event_type_null, touchPoint->time, touchPoint->x, touchPoint->y, 1, 0 }; switch (touchPoint->type) { case wpe_input_touch_event_type_down: pointerEvent.type = wpe_input_pointer_event_type_button; pointerEvent.state = 1; break; case wpe_input_touch_event_type_motion: pointerEvent.type = wpe_input_pointer_event_type_motion; pointerEvent.state = 1; break; case wpe_input_touch_event_type_up: pointerEvent.type = wpe_input_pointer_event_type_button; pointerEvent.state = 0; break; case wpe_input_pointer_event_type_null: ASSERT_NOT_REACHED(); return; } m_view.page().handleMouseEvent(NativeWebMouseEvent(&pointerEvent)); }
void WebViewNix::sendGestureEvent(const NIXGestureEvent& event) { NIXMouseEvent nixEvent; nixEvent.type = kNIXInputEventTypeMouseDown; nixEvent.button = kWKEventMouseButtonLeftButton; nixEvent.x = event.x; nixEvent.y = event.y; nixEvent.globalX = event.globalX; nixEvent.globalY = event.globalY; nixEvent.clickCount = 1; nixEvent.modifiers = event.modifiers; nixEvent.timestamp = event.timestamp; page()->handleMouseEvent(NativeWebMouseEvent(nixEvent, &m_lastCursorPosition)); nixEvent.type = kNIXInputEventTypeMouseUp; page()->handleMouseEvent(NativeWebMouseEvent(nixEvent, &m_lastCursorPosition)); }
void GestureController::DragGesture::handleTap(const GdkEvent* event) { ASSERT(!m_inDrag); GUniquePtr<GdkEvent> pointerEvent(gdk_event_new(GDK_MOTION_NOTIFY)); pointerEvent->motion.time = event->touch.time; pointerEvent->motion.x = event->touch.x; pointerEvent->motion.y = event->touch.y; pointerEvent->motion.x_root = event->touch.x_root; pointerEvent->motion.y_root = event->touch.y_root; pointerEvent->motion.state = event->touch.state; m_page.handleMouseEvent(NativeWebMouseEvent(pointerEvent.get(), 0)); pointerEvent.reset(gdk_event_new(GDK_BUTTON_PRESS)); pointerEvent->button.button = 1; pointerEvent->button.time = event->touch.time; pointerEvent->button.x = event->touch.x; pointerEvent->button.y = event->touch.y; pointerEvent->button.x_root = event->touch.x_root; pointerEvent->button.y_root = event->touch.y_root; m_page.handleMouseEvent(NativeWebMouseEvent(pointerEvent.get(), 1)); pointerEvent->type = GDK_BUTTON_RELEASE; m_page.handleMouseEvent(NativeWebMouseEvent(pointerEvent.get(), 0)); }
void QtWebPageEventHandler::handleMouseMoveEvent(QMouseEvent* ev) { // For some reason mouse press results in mouse hover (which is // converted to mouse move for WebKit). We ignore these hover // events by comparing lastPos with newPos. // NOTE: lastPos from the event always comes empty, so we work // around that here. static QPointF lastPos = QPointF(); QTransform fromItemTransform = m_webPage->transformFromItem(); QPointF webPagePoint = fromItemTransform.map(ev->localPos()); if (lastPos == webPagePoint) return; lastPos = webPagePoint; m_webPageProxy->handleMouseEvent(NativeWebMouseEvent(ev, fromItemTransform, /*eventClickCount*/ 0)); }
void QtWebPageEventHandler::handleMousePressEvent(QMouseEvent* ev) { QTransform fromItemTransform = m_webPage->transformFromItem(); QPointF webPagePoint = fromItemTransform.map(ev->localPos()); if (m_clickTimer.isActive() && m_previousClickButton == ev->button() && (webPagePoint - m_lastClick).manhattanLength() < qApp->styleHints()->startDragDistance()) { m_clickCount++; } else { m_clickCount = 1; m_previousClickButton = ev->button(); } m_webPageProxy->handleMouseEvent(NativeWebMouseEvent(ev, fromItemTransform, m_clickCount)); m_lastClick = webPagePoint; m_clickTimer.start(qApp->styleHints()->mouseDoubleClickInterval(), this); }
void QtWebPageEventHandler::handleMouseReleaseEvent(QMouseEvent* ev) { QTransform fromItemTransform = m_webPage->transformFromItem(); m_webPageProxy->handleMouseEvent(NativeWebMouseEvent(ev, fromItemTransform, /*eventClickCount*/ 0)); }
void WebViewEfl::sendMouseEvent(const Evas_Event_Mouse_Move* event) { ASSERT(event); m_page->handleMouseEvent(NativeWebMouseEvent(event, transformFromScene(), m_userViewportTransform.toAffineTransform())); }
void WebViewNix::sendMouseEvent(const NIXMouseEvent& event) { page()->handleMouseEvent(NativeWebMouseEvent(event, &m_lastCursorPosition)); }