Simply sending it a TouchEnd is not the way to go as it would tell WebView that the touch sequence belongs to it and that it should commit whatever UI changes this touch sequence caused to it.
If SwipeArea grabbed the touch, WebView should undo whatever changes that were caused by that touch. To me it looks like WebView doesn't handle a touch point being grabbed from it and is thus left in a bad state. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to ubuntu-ui-toolkit in Ubuntu. https://bugs.launchpad.net/bugs/1459362 Title: SwipeArea lets touch events through before a drag is detected Status in Oxide: New Status in ubuntu-ui-toolkit package in Ubuntu: New Status in webbrowser-app package in Ubuntu: New Bug description: I recently build a branch of lp:webbrowser-app with the latest code drop for DirectionalDragArea from lp:unity8. The branch is there: lp:~osomon/webbrowser-app/update-dda. The DDA is used to detect a bottom edge drag over a WebView component, and display the tabs view accordingly. This works well, but often when a drag is detected the WebView under it gets a long press event, thus triggering the selection mechanism that it implements. According to Daniel with whom I discussed the issue prior to filing this bug: > Yes, the recognition parameters (and algorithm) were changed a bit. > So it's perfectly possible that what you consider a long press (don't > know how many milliseconds of pressed are needed for that) can happen > before the DirectionalDragArea reaches a decision on whether the gesture > is a directional drag gesture or not. The threshold duration for a long press to be detected by the WebView is 500ms. I’ve rebuilt my branch with DIRECTIONALDRAGAREA_DEBUG set to 1, and here is what I’m seeing when observing the issue: [DDA()] 10035 TouchBegin (id:8, state:pressed, scenePos:(268.503,917.002)) [DDA()] WaitingForTouch -> Undecided [DDA()] Unowned 10072 TouchUpdate (id:8, state:moved, scenePos:(268.503,917.002)) [DDA()] Sill within composition window. Let's wait more. [DDA()] Unowned 10089 TouchUpdate (id:8, state:moved, scenePos:(268.503,917.002)) [DDA()] Sill within composition window. Let's wait more. [DDA()] Unowned 10106 TouchUpdate (id:8, state:moved, scenePos:(268.503,917.002)) [DDA()] movedFarEnoughAlongGestureAxis: scalarProjection=0, distanceThreshold=15.748 [DDA()] Didn't move far enough yet. Let's wait more. [DDA()] Unowned 10123 TouchUpdate (id:8, state:moved, scenePos:(267.006,911.008)) [DDA()] movedFarEnoughAlongGestureAxis: scalarProjection=2.05677, distanceThreshold=15.748 [DDA()] Didn't move far enough yet. Let's wait more. [DDA()] Unowned 10139 TouchUpdate (id:8, state:moved, scenePos:(267.505,891.706)) [DDA()] movedFarEnoughAlongGestureAxis: scalarProjection=21.3591, distanceThreshold=15.748 [DDA()] grabbing touch [DDA()] Undecided -> Recognized [DDA()] 10150 TouchUpdate (id:8, state:moved, scenePos:(267.505,891.706)) [DDA()] 10186 TouchUpdate (id:8, state:moved, scenePos:(268.503,845.866)) [DDA()] 10215 TouchUpdate (id:8, state:moved, scenePos:(270.853,799.68)) [DDA()] 10238 TouchUpdate (id:8, state:moved, scenePos:(271.996,774.151)) [DDA()] 10248 TouchUpdate (id:8, state:moved, scenePos:(272.212,747.697)) [DDA()] 10260 TouchUpdate (id:8, state:moved, scenePos:(274.196,721.618)) [DDA()] 10288 TouchUpdate (id:8, state:moved, scenePos:(275.736,663.346)) [DDA()] 10345 TouchUpdate (id:8, state:moved, scenePos:(278.203,582.836)) [DDA()] 10465 TouchUpdate (id:8, state:moved, scenePos:(280.481,432.403)) [DDA()] 10483 TouchUpdate (id:8, state:moved, scenePos:(281.486,382.402)) [DDA()] 10501 TouchUpdate (id:8, state:moved, scenePos:(282.613,359.847)) [DDA()] 10522 TouchUpdate (id:8, state:moved, scenePos:(283.838,335.342)) [DDA()] 10532 TouchUpdate (id:8, state:moved, scenePos:(284.972,311.133)) [DDA()] 10545 TouchUpdate (id:8, state:moved, scenePos:(286.124,288.236)) [DDA()] 10590 TouchUpdate (id:8, state:moved, scenePos:(287.307,265.747)) [DDA()] 10600 TouchUpdate (id:8, state:moved, scenePos:(288.466,228.588)) [DDA()] 10601 TouchEnd (id:8, state:released, scenePos:(288.466,228.588)) [DDA()] Recognized -> WaitingForTouch Let me know if I can provide more useful information. To manage notifications about this bug go to: https://bugs.launchpad.net/oxide/+bug/1459362/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : [email protected] Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp

