I’ve now updated my branch to use the public SwipeArea component from the UITK, and I’m still seeing an issue similar to the one originally reported. I can reproduce it with a minimal standalone example:
import QtQuick 2.4 import Ubuntu.Components 1.3 import com.canonical.Oxide 1.11 WebView { url: "https://en.wikipedia.org/wiki/Ubuntu_(operating_system)" SwipeArea { direction: SwipeArea.Upwards onDraggingChanged: console.log("dragging:", dragging) onDistanceChanged: console.log("distance:", distance) anchors { left: parent.left right: parent.right bottom: parent.bottom } height: units.gu(2) } } I instrumented oxide to print a log statement every time a touch event is detected, and when starting a drag even from the bottom edge, the following happens: qml: distance: 0 virtual void OxideQQuickWebView::touchEvent(QTouchEvent*) QTouchEvent(TouchBegin states: QFlags(0x1), 1 points: (TouchPoint(0 QRectF(599.979,1848.5 2.9974x2.9974) pressed))) virtual void OxideQQuickWebView::touchEvent(QTouchEvent*) QTouchEvent(TouchUpdate states: QFlags(0x2), 1 points: (TouchPoint(0 QRectF(613.967,1676.09 2.9974x1.99827) moved))) virtual void OxideQQuickWebView::touchEvent(QTouchEvent*) QTouchEvent(TouchUpdate states: QFlags(0x2), 1 points: (TouchPoint(0 QRectF(618.213,1623.12 4.99566x2.9974) moved))) virtual void OxideQQuickWebView::touchEvent(QTouchEvent*) QTouchEvent(TouchUpdate states: QFlags(0x2), 1 points: (TouchPoint(0 QRectF(620.961,1507.47 2.9974x1.99827) moved))) virtual void OxideQQuickWebView::touchEvent(QTouchEvent*) QTouchEvent(TouchUpdate states: QFlags(0x2), 1 points: (TouchPoint(0 QRectF(620.961,1492.02 2.9974x1.99827) moved))) qml: dragging: true qml: distance: 148.6371093749999 […] qml: distance: 513.631586442578 qml: dragging: false It appears the webview is getting a TouchBegin event, followed by a number of TouchUpdate events, before the SwipeArea even detects a drag. When it does, events stop being sent to the webview, which as a consequence never gets a TouchEnd event to match the first TouchBegin event, leaving it in an inconsistent state. ** Summary changed: - SwipeArea lets touch events through when a drag is detected + SwipeArea lets touch events through before a drag is detected -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1459362 Title: SwipeArea lets touch events through before a drag is detected To manage notifications about this bug go to: https://bugs.launchpad.net/oxide/+bug/1459362/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs