diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-16 14:51:15 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-16 14:51:15 +0200 |
commit | 4e6b3a206fa4ad8bb0b664f7674c9a70376d6e26 (patch) | |
tree | 7bb9ad7e31c24d1cf1707e03e6f1a80f6d033951 /Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp | |
parent | 3977e3d2f72f7fe2c887c1ec0e0c342e1d169f42 (diff) | |
download | qtwebkit-4e6b3a206fa4ad8bb0b664f7674c9a70376d6e26.tar.gz |
Imported WebKit commit 953baa67aa07087b6ecd4199351ec554c724e27d (http://svn.webkit.org/repository/webkit/trunk@122676)
Diffstat (limited to 'Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp')
-rw-r--r-- | Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp index 046d80339..25bf2e7df 100644 --- a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp +++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp @@ -1655,6 +1655,38 @@ void QQuickWebView::platformInitialize() WTF::initializeMainThread(); } +bool QQuickWebView::childMouseEventFilter(QQuickItem* item, QEvent* event) +{ + if (!isVisible() || !isEnabled() || !s_flickableViewportEnabled) + return QQuickFlickable::childMouseEventFilter(item, event); + + // This function is used by MultiPointTouchArea and PinchArea to filter + // touch events, thus to hinder the canvas from sending synthesized + // mouse events to the Flickable implementation we need to reimplement + // childMouseEventFilter and filter incoming touch events as well. + + switch (event->type()) { + case QEvent::MouseButtonPress: + mousePressEvent(static_cast<QMouseEvent*>(event)); + return event->isAccepted(); + case QEvent::MouseMove: + mouseMoveEvent(static_cast<QMouseEvent*>(event)); + return event->isAccepted(); + case QEvent::MouseButtonRelease: + mouseReleaseEvent(static_cast<QMouseEvent*>(event)); + return event->isAccepted(); + case QEvent::TouchBegin: + case QEvent::TouchUpdate: + case QEvent::TouchEnd: + touchEvent(static_cast<QTouchEvent*>(event)); + return event->isAccepted(); + default: + break; + } + + return QQuickFlickable::childMouseEventFilter(item, event); +} + void QQuickWebView::geometryChanged(const QRectF& newGeometry, const QRectF& oldGeometry) { Q_D(QQuickWebView); |